Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
SelectedDataKey, propriété
Collapse the table of content
Expand the table of content
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source

ListView.SelectedDataKey, propriété

Obtient la valeur de clés des données pour l'élément sélectionné dans un contrôle ListView.

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

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

Valeur de propriété

Type : System.Web.UI.WebControls.DataKey
La clé de données pour l'élément sélectionné dans un contrôle ListView. La valeur par défaut est null, ce qui indique qu'aucun élément n'est actuellement sélectionné.

ExceptionCondition
InvalidOperationException

Aucune clé de données n'est spécifiée dans la propriété DataKeyNames.

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

L'utilisation de la propriété SelectedDataKey revient à extraire l'objet DataKey de la collection DataKeys au niveau de l'index spécifié par la propriété SelectedIndex. Vous pouvez également utiliser la propriété SelectedValue pour récupérer directement la valeur de clés des données pour l'élément actuellement sélectionné.

Si vous créez un objet ControlParameter et que souhaitez accéder à un champ clé autre que le premier champ, utilisez la propriété SelectedDataKey indexée dans la propriété PropertyName de l'objet ControlParameter.

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 contrôle ListView est utilisé pour afficher des enregistrements à partir du tableau Product Inventory de la base de données AdventureWorks. Lorsqu'un élément est sélectionné dans le contrôle ListView, les détails du produit sont affichés dans un autre contrôle ListView. ProductID est le deuxième nom de clé dans le premier contrôle ListView. Pour accéder à la deuxième clé, le code utilise la valeur de ProductInventoryListView.SelectedDataKey[1] (ProductInventoryListView.SelectedDataKey(1) dans Visual Basic) comme PropertyName pour l'objet ControlParameter. Cet objet de paramètre est utilisé ensuite par le contrôle SqlDataSource auquel le second contrôle ListView est lié.


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

  protected void ProductInventoryListView_PagePropertiesChanging(object sender, 
    PagePropertiesChangingEventArgs e)
  {
    ProductInventoryListView.SelectedIndex = -1;
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>ListView SelectedDataKey Example</title>
    <style type="text/css">
      .header
      {
      	border: 1px solid #008080;
      	background-color: #008080;
      	color: White;
      }
      .item td { border: 1px solid #008080; }
    </style>
  </head>
  <body>
    <form id="form1" runat="server">

      <h3>ListView SelectedDataKey Example</h3>

      <asp:ListView runat="server" 
        ID="ProductInventoryListView"
        DataSourceID="ProductInventoryDataSource" 
        DataKeyNames="LocationID,ProductID" 
	      OnPagePropertiesChanging="ProductInventoryListView_PagePropertiesChanging">
        <LayoutTemplate>
          <b>Product Inventory</b>
          <br />
          <table width="400px" runat="server" id="tblProducts">
            <tr class="header" runat="server">
              <th runat="server">&nbsp;</th>
              <th runat="server">Product ID</th>
              <th runat="server">Location ID</th>
              <th runat="server">Shelf</th>
              <th runat="server">Bin</th>
              <th runat="server">Quantity</th>
            </tr>
            <tr runat="server" id="itemPlaceholder" />
          </table>
          <asp:DataPager runat="server" ID="ProductInventoryPager">
            <Fields>
              <asp:NextPreviousPagerField ShowFirstPageButton="true"
                ShowLastPageButton="true" />
            </Fields>
          </asp:DataPager>
        </LayoutTemplate>
        <ItemTemplate>
          <tr class="item" runat="server">
            <td>
              <asp:ImageButton runat="server" 
                ID="SelectButton" 
                Width="15"
                Height="15"
                ImageUrl="~/images/select.jpg" 
                CommandName="Select" />
            </td>
            <td>
              <asp:Label runat="server" ID="ProductIDLabel" Text='<%#Eval("ProductID") %>' />
            </td>
            <td>
              <asp:Label runat="server" ID="LocationIDLabel" Text='<%#Eval("LocationID") %>' />
            </td>
            <td>
              <asp:Label runat="server" ID="ShelfLabel" Text='<%#Eval("Shelf") %>' />
            </td>
            <td>
              <asp:Label runat="server" ID="BinLabel" Text='<%#Eval("Bin") %>' />
            </td>
            <td>
              <asp:Label runat="server" ID="QuantityLabel" Text='<%#Eval("Quantity") %>' />
            </td>
          </tr>
        </ItemTemplate>
      </asp:ListView>
      <br /><br />

      <asp:ListView runat="server" ID="ProductListView"
        DataSourceID="ProductDataSource">
        <LayoutTemplate>
          <b>Product Details</b>          
          <table runat="server" id="tblDetails">
            <tr runat="server" id="itemPlaceholder" />
          </table>
        </LayoutTemplate>
        <ItemTemplate>
          <tr runat="server">
            <td class="header">Product ID:</td>
            <td>
              <asp:Label runat="server" ID="ProductLabel" Text='<%#Eval("ProductID") %>' />
            </td>
          </tr>
          <tr runat="server">
            <td class="header">Name:</td>
            <td>
              <asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
            </td>
          </tr>
          <tr runat="server">
            <td class="header">Color:</td>
            <td>
              <asp:Label runat="server" ID="ColorLabel" Text='<%#Eval("Color") %>' />
            </td>
          </tr>
          <tr runat="server">
            <td class="header">Price:</td>
            <td>
              <asp:Label runat="server" ID="ListPriceLabel" Text='<%#Eval("ListPrice", "{0:c}") %>' />
            </td>
          </tr>
        </ItemTemplate>
      </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="ProductInventoryDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
        SelectCommand="SELECT [ProductID], [LocationID], [Shelf], [Bin], [Quantity]
                       FROM Production.ProductInventory">
      </asp:SqlDataSource>

      <asp:SqlDataSource ID="ProductDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
        SelectCommand="SELECT [ProductID], [Name], [Color], [ListPrice], [ProductNumber]
                         FROM Production.Product
                         WHERE ProductID = @ProductID
                         ORDER BY [Name]">
          <SelectParameters>
            <asp:ControlParameter Name="ProductID" 
              DefaultValue="0"
              ControlID="ProductInventoryListView" 
              PropertyName="SelectedDataKey[1]"  />
          </SelectParameters>
      </asp:SqlDataSource>

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


.NET Framework

Pris en charge dans : 4, 3.5

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft