FormViewDeletedEventArgs.Keys Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u een geordende woordenlijst op van sleutelveldnaam/waardeparen voor de verwijderde record.
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
Waarde van eigenschap
Een OrderedDictionary met sleutelveldnaam/waardeparen voor de verwijderde record.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de Keys eigenschap gebruikt om toegang te krijgen tot de waarden van de sleutelvelden voor een verwijderde record.
<%@ 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 EmployeeFormView_ItemDeleted(Object sender, FormViewDeletedEventArgs e)
{
// Display the values of the key fields in the Keys property.
KeysMessageLabel.Text =
"The key fields for the deleted record are: <br/>";
foreach (DictionaryEntry entry in e.Keys)
{
DisplayValue(entry, KeysMessageLabel);
}
// Display the values of the non-key fields in the Values
// property.
ValuesMessageLabel.Text =
"The non-key fields for the deleted record are: <br/>";
foreach (DictionaryEntry entry in e.Values)
{
DisplayValue(entry, ValuesMessageLabel);
}
}
void DisplayValue(DictionaryEntry entry, Label displayLabel)
{
// Display the field name contained in the DictionaryEntry object.
if (entry.Key != null)
{
displayLabel.Text += "Name=" + entry.Key.ToString() + ", ";
}
else
{
displayLabel.Text += "Name=null, ";
}
// Display the field value contained in the DictionaryEntry object.
if (entry.Value != null)
{
displayLabel.Text += "Value=" + entry.Value.ToString() + "<br/>";
}
else
{
displayLabel.Text += "Value=null<br/>";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FormViewDeletedEventArgs Keys and Values Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>FormViewDeletedEventArgs Keys and Values Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
onitemdeleted="EmployeeFormView_ItemDeleted"
runat="server">
<itemtemplate>
<table>
<tr>
<td>
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td>
<asp:label id="FirstNameLabel"
text='<%#Bind("FirstName")%>'
font-bold="true"
runat="server"/>
<asp:label id="LastNameLabel"
text='<%#Bind("LastName")%>'
font-bold="true"
runat="server"/>
<br/>
<asp:label id="TitleLabel"
text='<%#Bind("Title")%>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:button id="DeleteButton"
text="Delete Record"
commandname="Delete"
runat="server" />
</td>
</tr>
</table>
</itemtemplate>
</asp:formview>
<asp:label id="KeysMessageLabel"
forecolor="Red"
runat="server"/>
<br/><br/>
<asp:label id="ValuesMessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
deletecommand="Delete [Employees] Where [EmployeeID]=@EmployeeID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</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 EmployeeFormView_ItemDeleted(ByVal sender As Object, ByVal e As FormViewDeletedEventArgs) Handles EmployeeFormView.ItemDeleted
Dim entry As DictionaryEntry
' Display the values of the key fields in the Keys property.
KeysMessageLabel.Text = _
"The key fields for the deleted record are: <br/>"
' In Visual Basic, you cannot iterate through the DictionaryEntry objects
' in the Keys property directly. Use the CopyTo method to
' copy the objects to an array first.
Dim keysArray(e.Keys.Count - 1) As DictionaryEntry
e.Keys.CopyTo(keysArray, 0)
' Iterate through the array and display its values.
For Each entry In keysArray
DisplayValue(entry, KeysMessageLabel)
Next
' Display the values of the non-key fields in the Values
' property.
ValuesMessageLabel.Text = _
"The non-key fields for the deleted record are: <br/>"
Dim valuesArray(e.Values.Count - 1) As DictionaryEntry
e.Values.CopyTo(valuesArray, 0)
For Each entry In valuesArray
DisplayValue(entry, ValuesMessageLabel)
Next
End Sub
Sub DisplayValue(ByVal entry As DictionaryEntry, ByVal displayLabel As Label)
' Display the field name contained in the DictionaryEntry object.
If entry.Key IsNot Nothing Then
displayLabel.Text &= "Name=" & entry.Key.ToString() & ", "
Else
displayLabel.Text &= "Name=null, "
End If
' Display the field value contained in the DictionaryEntry object.
If entry.Value IsNot Nothing Then
displayLabel.Text &= "Value=" & entry.Value.ToString() & "<br/>"
Else
displayLabel.Text &= "Value=null<br/>"
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FormViewDeletedEventArgs Keys and Values Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>FormViewDeletedEventArgs Keys and Values Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
runat="server">
<itemtemplate>
<table>
<tr>
<td>
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td>
<asp:label id="FirstNameLabel"
text='<%#Bind("FirstName")%>'
font-bold="true"
runat="server"/>
<asp:label id="LastNameLabel"
text='<%#Bind("LastName")%>'
font-bold="true"
runat="server"/>
<br/>
<asp:label id="TitleLabel"
text='<%#Bind("Title")%>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:button id="DeleteButton"
text="Delete Record"
commandname="Delete"
runat="server" />
</td>
</tr>
</table>
</itemtemplate>
</asp:formview>
<asp:label id="KeysMessageLabel"
forecolor="Red"
runat="server"/>
<br/><br/>
<asp:label id="ValuesMessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
deletecommand="Delete [Employees] Where [EmployeeID]=@EmployeeID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
Opmerkingen
De Keys eigenschap bevat de waarden van de sleutelvelden die worden vermeld in de DataKeyNames eigenschap van een FormView besturingselement. Gebruik de Keys eigenschap voor toegang tot de waarden van de sleutelvelden (zoals opgegeven door de DataKeyNames eigenschap) voor een verwijderde record. U kunt deze waarden bijvoorbeeld gebruiken om een logboek met verwijderde records te bewaren.
Note
Deze eigenschap bevat alleen de sleutelvelden die zijn opgegeven in de DataKeyNames eigenschap. Gebruik de Values eigenschap om toegang te krijgen tot de niet-sleutelvelden.
De Keys eigenschap retourneert een OrderedDictionary object dat de System.Collections.Specialized.IOrderedDictionary interface implementeert. Het OrderedDictionary object bevat System.Collections.DictionaryEntry objecten die de sleutelvelden van de verwijderde record vertegenwoordigen. Gebruik de Keys eigenschap van het OrderedDictionary object om toegang te krijgen tot de veldnamen. Op dezelfde manier hebt u toegang tot de veldwaarden met behulp van de Values eigenschap.
Note
Als snelkoppeling kunt u ook de indexeerfunctie van het OrderedDictionary object gebruiken om toegang te krijgen tot de sleutelveldwaarden. Het voordeel van het gebruik van de indexeerfunctie is dat hiermee rechtstreeks sleutelveldwaarden worden geretourneerd. Besturingselementen voor gegevensbronnen die afhankelijk zijn van de veldvolgorde (zoals AccessDataSource) hebben alleen toegang tot sleutelveldwaarden per index.