Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo LinqDataSource.Update (IDictionary, IDictionary, IDictionary)

 

Data di pubblicazione: ottobre 2016

Esegue un'operazione di aggiornamento.

Spazio dei nomi:   System.Web.UI.WebControls
Assembly:  System.Web.Extensions (in System.Web.Extensions.dll)

public int Update(
	IDictionary keys,
	IDictionary values,
	IDictionary oldValues
)

Parametri

keys
Type: System.Collections.IDictionary

I valori chiave di riga per i record da aggiornare.

values
Type: System.Collections.IDictionary

I valori di riga da aggiornare nell'origine dati.

oldValues
Type: System.Collections.IDictionary

I valori di riga che vengono valutati per rilevare i conflitti di dati.

Valore restituito

Type: System.Int32

Il numero di record interessati dall'operazione di aggiornamento.

In genere, non è necessario chiamare il Update metodo dal codice. Il controllo con associazione a dati chiamerà automaticamente il Update metodo quando l'utente esegue un'operazione per aggiornare un record. Chiamare in modo esplicito il Update metodo quando si desidera creare un processo personalizzato per l'aggiornamento dei dati.

Nell'esempio seguente viene illustrato come aggiornare a livello di codice un record nell'origine dati quando l'utente sceglie un pulsante. Il codice passa un ListDictionary oggetto che contiene il valore della chiave, un ListDictionary oggetto che contiene i valori originali, e un ListDictionary oggetto che contiene i nuovi valori di Update metodo.

protected void Reset_Click(object sender, EventArgs e)
{
    ListDictionary keyValues = new ListDictionary();
    ListDictionary newValues = new ListDictionary();
    ListDictionary oldValues = new ListDictionary();

    keyValues.Add("ProductID", int.Parse(((Label)DetailsView1.FindControl("IDLabel")).Text));

    oldValues.Add("ProductName", ((Label)DetailsView1.FindControl("NameLabel")).Text);
    oldValues.Add("ProductCategory", ((Label)DetailsView1.FindControl("CategoryLabel")).Text);
    oldValues.Add("Color", ((Label)DetailsView1.FindControl("ColorLabel")).Text);

    newValues.Add("ProductName", "New Product");
    newValues.Add("ProductCategory", "General");
    newValues.Add("Color", "Not assigned");

    LinqDataSource1.Update(keyValues, newValues, oldValues);

    DetailsView1.DataBind();
}

Nell'esempio seguente viene illustrato il markup per l'esempio precedente.

     <asp:LinqDataSource  
       ContextTypeName="ExampleDataContext" 
       TableName="Products" 
       EnableUpdate="true" 
       ID="LinqDataSource1" 
       runat="server">
     </asp:LinqDataSource>
     <asp:DetailsView 
       DataSourceID="LinqDataSource1" 
       AllowPaging="True" 
       ID="DetailsView1" 
       runat="server" 
       AutoGenerateRows="False">
       <Fields>
         <asp:templatefield HeaderText="Product ID">
	<itemtemplate>
		<asp:Label ID="IDLabel" runat="server" Text='<%# Bind("ProductID") %>'></asp:Label>
	</itemtemplate>
</asp:templatefield>
       	<asp:templatefield HeaderText="Product Name">
	<itemtemplate>
		<asp:Label ID="NameLabel" runat="server" Text='<%# Bind("ProductName") %>'></asp:Label>
	</itemtemplate>
</asp:templatefield>
       	<asp:templatefield HeaderText="Category">
	<itemtemplate>
		<asp:Label ID="CategoryLabel" runat="server" Text='<%# Bind("ProductCategory") %>'></asp:Label>
	</itemtemplate>
</asp:templatefield>
<asp:templatefield HeaderText="Color">
	<itemtemplate>
		<asp:Label ID="ColorLabel" runat="server" Text='<%# Bind("Color") %>'></asp:Label>
	</itemtemplate>
</asp:templatefield>
       </Fields>
     </asp:DetailsView>
     <asp:button 
       ID="Button1"
       Text="Reset with default values" 
       runat="server" 
 onclick="Reset_Click" />

.NET Framework
Disponibile da 3.5
Torna all'inizio
Mostra: