Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

GridView.SelectedDataKey propriété

 

Date de publication : novembre 2016

Obtient le DataKey objet qui contient la valeur de clé de données pour la ligne sélectionnée dans un GridView contrôle.

Espace de noms:   System.Web.UI.WebControls
Assembly:  System.Web (dans System.Web.dll)

[BrowsableAttribute(false)]
public virtual DataKey SelectedDataKey { get; }

Valeur de propriété

Type: System.Web.UI.WebControls.DataKey

Le DataKey pour la ligne sélectionnée dans un GridView contrôle. La valeur par défaut est null, ce qui signifie qu’aucune ligne n’est actuellement sélectionné.

Exception Condition
InvalidOperationException

Aucune clé de données n’est spécifiés dans le DataKeyNames propriété.

Lorsque le DataKeyNames propriété est définie, la GridView contrôle crée automatiquement une DataKey objet pour chaque ligne dans le contrôle à l’aide de l’ou les valeurs du champ spécifié ou des champs. Le DataKey objets sont ensuite ajoutés du contrôle DataKeys collection. Normalement, le DataKeys propriété est utilisée pour récupérer le DataKey objet pour une ligne de données spécifique dans le GridView contrôle. Toutefois, si vous devez simplement récupérer le DataKey objet de la ligne actuellement sélectionnée, vous pouvez simplement utiliser le SelectedDataKey propriété comme un raccourci.

System_CAPS_noteRemarque

Il est identique à la récupération de la DataKey objet à l’index spécifié par le SelectedIndex propriété à partir de la DataKeys collection. Vous pouvez également utiliser le SelectedValue propriété à récupérer directement la valeur de clé de données pour la ligne actuellement sélectionnée.

Si vous créez un ControlParameter de l’objet et souhaitez accéder à un champ clé autre que le premier champ, utilisez indexés SelectedDataKey propriété dans le PropertyName propriété de la ControlParameter objet. Vous trouverez ci-dessous un exemple.

L’exemple suivant montre comment utiliser le SelectedDataKey propriété pour déterminer la valeur de clé des données de la ligne sélectionnée dans un GridView contrôle.


<%@ 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 CustomersGridView_SelectedIndexChanged(Object sender, EventArgs e)  
  {

    // Display the primary key value of the selected row.
    Message.Text = "The primary key value of the selected row is " +
      CustomersGridView.SelectedDataKey.Value.ToString() + ".";

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView SelectedDataKey Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>GridView SelectedDataKey Example</h3>

      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>

      <br/><br/>

      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSource" 
        allowpaging="true"
        autogeneratecolumns="true"
        autogenerateselectbutton="true"    
        datakeynames="CustomerID"
        onselectedindexchanged="CustomersGridView_SelectedIndexChanged"   
        runat="server">

        <selectedrowstyle backcolor="LightBlue"
          forecolor="DarkBlue"/> 

      </asp:gridview>

      <!-- 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="CustomersSource"
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
        runat="server"/>

    </form>
  </body>
</html>

L’exemple suivant montre comment utiliser le deuxième champ clé en tant que paramètre dans un scénario maître/détail. Un GridView contrôle est utilisé pour afficher les enregistrements de la table Order Details de la base de données Northwind. Lorsqu’un enregistrement est sélectionné dans le GridView (contrôle), les détails du produit de la table Products sont affichés dans un DetailsView contrôle. ProductID est le deuxième nom de clé dans le GridView contrôle. Accéder à la deuxième clé, la valeur de GridView1.SelectedDataKey[1] est utilisé comme le PropertyName pour la ControlParameter objet de la SqlDataSource contrôle de le DetailsView contrôle.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>Selecting Data Key Values</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:SqlDataSource 
      ID="SqlDataSource1" 
      runat="server" 
      ConnectionString="<%$ ConnectionStrings:NorthWindConnectionString%>"
      ProviderName="System.Data.SqlClient" 
      SelectCommand="SELECT * FROM [Order Details]">
    </asp:SqlDataSource>

    <asp:SqlDataSource 
      ID="SqlDataSource2" 
      runat="server" 
      ConnectionString="<%$ ConnectionStrings:NorthWindConnectionString%>"
      ProviderName="System.Data.SqlClient" 
      SelectCommand="SELECT * FROM [Products]WHERE [ProductID] = @productid">
      <SelectParameters>
        <asp:ControlParameter 
          Name="productid" 
          ControlID="GridView1" 
          PropertyName="SelectedDataKey[1]" />
      </SelectParameters>
    </asp:SqlDataSource>

  </div>

  <asp:GridView 
    ID="GridView1" 
    runat="server" 
    AllowPaging="True" 
    AutoGenerateColumns="False"
    DataKeyNames="OrderID,ProductID" DataSourceID="SqlDataSource1">
    <Columns>
      <asp:CommandField ShowSelectButton="True" />
      <asp:BoundField DataField="OrderID" HeaderText="OrderID" ReadOnly="True"/>
      <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" />
      <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
      <asp:BoundField DataField="Quantity" HeaderText="Quantity" />
      <asp:BoundField DataField="Discount" HeaderText="Discount" />
      </Columns>
    </asp:GridView>
    <br />
    <asp:DetailsView 
      ID="DetailsView1" 
      runat="server" 
      AutoGenerateRows="False" 
      DataKeyNames="ProductID"
      DataSourceID="SqlDataSource2" 
      Height="50px" Width="125px">
      <Fields>
        <asp:BoundField 
          DataField="ProductID" 
          HeaderText="ProductID" 
          InsertVisible="False"
          ReadOnly="True" />
        <asp:BoundField DataField="ProductName" HeaderText="ProductName"/>
        <asp:BoundField DataField="SupplierID" HeaderText="SupplierID"/>
        <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" />
        <asp:BoundField DataField="QuantityPerUnit" HeaderText="QuantityPerUnit" />
        <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
        <asp:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" />
        <asp:BoundField DataField="UnitsOnOrder" HeaderText="UnitsOnOrder" />
        <asp:BoundField DataField="ReorderLevel" HeaderText="ReorderLevel" />
        <asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued" />
      </Fields>
    </asp:DetailsView>
  </form>
</body>
</html>

.NET Framework
Disponible depuis 2.0
Retour au début
Afficher: