ListViewUpdateEventArgs.Keys Właściwość

Definicja

Pobiera słownik par nazwa/wartość pola, które reprezentują klucz lub klucze elementu do zaktualizowania.

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

Wartość właściwości

Pary nazwa/wartość pola reprezentujące klucz lub klucze elementu do zaktualizowania.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą Keys właściwości uzyskać dostęp do wartości pola klucza dla aktualizowanego rekordu.

Ważne

Ten przykład zawiera pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web sprawdzają, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

<%@ 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">&nbsp;</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">&nbsp;</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>

Uwagi

Gdy DataKeyNames właściwość kontrolki ListView jest ustawiona, użyj Keys właściwości (słownika), aby uzyskać dostęp do wartości klucza podstawowego w elemencie w celu zaktualizowania.

Uwaga

Aby uzyskać dostęp do wartości pól innych niż klucz, użyj NewValues właściwości lub OldValues . Właściwość NewValues zawiera zaktualizowane wartości, a OldValues właściwość zawiera oryginalne wartości.

Słownik Keys jest automatycznie wypełniany parami nazwy/wartości pola lub pól określonych we DataKeyNames właściwości . Jeśli wiele pól tworzy klucz podstawowy, do słownika Keys jest dodawany oddzielny wpis dla każdego pola klucza.

Aby określić nazwę pola klucza, użyj DictionaryEntry.Key właściwości DictionaryEntry obiektu znajdującego się w słowniku Keys . Aby określić wartość pola klucza, użyj DictionaryEntry.Value właściwości .

Dotyczy

Zobacz też