Export (0) Print
Expand All

FormViewDeletedEventArgs.Keys Property

Gets an ordered dictionary of key field name/value pairs for the deleted record.

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

'Declaration
Public ReadOnly Property Keys As IOrderedDictionary

Property Value

Type: System.Collections.Specialized.IOrderedDictionary
An OrderedDictionary that contains key field name/value pairs for the deleted record.

The Keys property contains the values of the key fields listed in the DataKeyNames property of a FormView control. Use the Keys property to access the values of the key fields (as specified by the DataKeyNames property) for a deleted record. For example, you can use these values to keep a log of deleted records.

NoteNote

This property contains only the key fields specified in the DataKeyNames property. To access the non-key fields, use the Values property.

The Keys property returns an OrderedDictionary object that implements the System.Collections.Specialized.IOrderedDictionary interface. The OrderedDictionary object contains System.Collections.DictionaryEntry objects that represent the key fields of the deleted record. To access the field names, use the Keys property of the OrderedDictionary object. Similarly, you can access the field values by using the Values property.

NoteNote

As a shortcut, you can also use the indexer of the OrderedDictionary object to access the key field values. The advantage in using the indexer is that it returns key field values directly. Data source controls that rely on the field order (such as AccessDataSource) can access key field values only by index.

The following example demonstrates how to use the Keys property to access the values of the key fields for a deleted record.


<%@ 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>

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft