Udostępnij za pośrednictwem


ListViewUpdateEventArgs.Keys Właściwość

Definicja

Pobiera słownik par nazw/wartości pól reprezentujących klucz lub klucze elementu do aktualizacji.

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 nazwy/wartości pola reprezentujące klucz lub klucze elementu do aktualizacji.

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

W tym przykładzie znajduje się pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web weryfikują, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz 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, aby zaktualizować.

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 nazw/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 zostanie dodany oddzielny wpis dla każdego pola klucza.

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

Dotyczy

Zobacz też