ListViewUpdateEventArgs.Keys Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient un dictionnaire des paires nom/valeur du champ qui représentent la ou les clés de l'élément à mettre à jour.
public:
property System::Collections::Specialized::IOrderedDictionary ^ Keys { System::Collections::Specialized::IOrderedDictionary ^ get(); };
public System.Collections.Specialized.IOrderedDictionary Keys { get; }
member this.Keys : System.Collections.Specialized.IOrderedDictionary
Public ReadOnly Property Keys As IOrderedDictionary
Valeur de propriété
Paires nom/valeur du champ qui représentent la ou les clés de l'élément à mettre à jour.
Exemples
L’exemple suivant montre comment utiliser la Keys propriété pour accéder à la valeur du champ de clé pour l’enregistrement en cours de mise à jour.
Important
Cet exemple comprend une zone de texte qui accepte une entrée d'utilisateur, ce qui constitue une menace potentielle pour la sécurité. Par défaut, les pages web ASP.NET vérifient que l’entrée d’utilisateur n’inclut pas de script ou d’éléments HTML. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load()
{
Message.Text = String.Empty;
}
//<Snippet2>
void UnitMeasureListView_ItemUpdating(Object sender, ListViewUpdateEventArgs e)
{
// Use the Keys property to retrieve the key field value
String keyValue = e.Keys[0].ToString().Trim();
// Cancel the update operation if the user attempts to
// edit a protected record. In this example, unit measure
// codes with 3 letters are protected.
if (keyValue.Length == 3)
{
Message.Text = "You cannot update this record. " +
" Unit Measure Code " + keyValue + " is protected.";
e.Cancel = true;
}
}
//</Snippet2>
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListViewUpdateEventArgs Keys Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>ListViewUpdateEventArgs Keys Example</h3>
<asp:Label ID="Message"
ForeColor="Red"
runat="server"/>
<br/>
<asp:ListView ID="UnitMeasureListView"
DataSourceID="UnitMeasureDataSource"
DataKeyNames="UnitMeasureCode"
OnItemUpdating="UnitMeasureListView_ItemUpdating"
runat="server">
<LayoutTemplate>
<table width="400px" border="1" id="tblUnit">
<tr runat="server">
<th runat="server"> </th>
<th runat="server">Unit Measure Code</th>
<th runat="server">Name</th>
</tr>
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="CodeLabel" runat="server" Text='<%#Eval("UnitMeasureCode") %>' />
</td>
<td>
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("Name") %>' />
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr style="background-color:#B0C4DE" runat="server">
<td>
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="CodeLabel" runat="server" Text='<%#Eval("UnitMeasureCode") %>' />
</td>
<td>
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("Name") %>' />
</td>
</tr>
</AlternatingItemTemplate>
<EditItemTemplate>
<tr style="background-color:#4682B4">
<td>
<asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
</td>
<td>
<asp:Label ID="CodeLabel" runat="server" Text='<%#Eval("UnitMeasureCode") %>' />
</td>
<td>
<asp:TextBox ID="NameTextBox" runat="server" Text='<%#Bind("Name") %>' MaxLength="50" /><br />
</td>
</tr>
</EditItemTemplate>
</asp:ListView>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="UnitMeasureDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [UnitMeasureCode], [Name] FROM Production.UnitMeasure"
UpdateCommand="UPDATE Production.UnitMeasure
SET [Name] = @Name
WHERE [UnitMeasureCode] = @UnitMeasureCode">
</asp:SqlDataSource>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Page_Load()
Message.Text = String.Empty
End Sub 'Page_Load
Sub UnitMeasureListView_ItemUpdating(ByVal sender As Object, ByVal e As ListViewUpdateEventArgs)
' Use the Keys property to retrieve the key field value
Dim keyValue As String = e.Keys(0).ToString().Trim()
' Cancel the update operation if the user attempts to
' edit a protected record. In this example, unit measure
' codes with 3 letters are protected.
If keyValue.Length = 3 Then
Message.Text = "You cannot update this record. " & _
" Unit Measure Code " & keyValue & " is protected."
e.Cancel = True
End If
End Sub 'UnitMeasureListView_ItemUpdating
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListViewUpdateEventArgs Keys Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>ListViewUpdateEventArgs Keys Example</h3>
<asp:Label ID="Message"
ForeColor="Red"
runat="server"/>
<br/>
<asp:ListView ID="UnitMeasureListView"
DataSourceID="UnitMeasureDataSource"
DataKeyNames="UnitMeasureCode"
OnItemUpdating="UnitMeasureListView_ItemUpdating"
runat="server">
<LayoutTemplate>
<table width="400px" border="1" id="tblUnit">
<tr runat="server">
<th runat="server"> </th>
<th runat="server">Unit Measure Code</th>
<th runat="server">Name</th>
</tr>
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="CodeLabel" runat="server" Text='<%#Eval("UnitMeasureCode") %>' />
</td>
<td>
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("Name") %>' />
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr style="background-color:#B0C4DE" runat="server">
<td>
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="CodeLabel" runat="server" Text='<%#Eval("UnitMeasureCode") %>' />
</td>
<td>
<asp:Label ID="FirstNameLabel" runat="server" Text='<%#Eval("Name") %>' />
</td>
</tr>
</AlternatingItemTemplate>
<EditItemTemplate>
<tr style="background-color:#4682B4">
<td>
<asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
</td>
<td>
<asp:Label ID="CodeLabel" runat="server" Text='<%#Eval("UnitMeasureCode") %>' />
</td>
<td>
<asp:TextBox ID="NameTextBox" runat="server" Text='<%#Bind("Name") %>' MaxLength="50" /><br />
</td>
</tr>
</EditItemTemplate>
</asp:ListView>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="UnitMeasureDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [UnitMeasureCode], [Name] FROM Production.UnitMeasure"
UpdateCommand="UPDATE Production.UnitMeasure
SET [Name] = @Name
WHERE [UnitMeasureCode] = @UnitMeasureCode">
</asp:SqlDataSource>
</form>
</body>
</html>
Remarques
Lorsque la DataKeyNames propriété d’un ListView contrôle est définie, utilisez la Keys propriété (dictionnaire) pour accéder à la valeur de la clé primaire dans l’élément à mettre à jour.
Notes
Pour accéder aux valeurs des champs non clés, utilisez les NewValues propriétés ou OldValues . La NewValues propriété contient les valeurs mises à jour et la OldValues propriété contient les valeurs d’origine.
Le Keys dictionnaire est automatiquement renseigné avec les paires nom/valeur du ou des champs spécifiés dans la DataKeyNames propriété . Si plusieurs champs forment la clé primaire, une entrée distincte est ajoutée au Keys dictionnaire pour chaque champ de clé.
Pour déterminer le nom d’un champ de clé, utilisez la DictionaryEntry.Key propriété d’un DictionaryEntry objet contenu dans le Keys dictionnaire. Pour déterminer la valeur d’un champ de clé, utilisez la DictionaryEntry.Value propriété .