ListView.SelectedDataKey プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ListView コントロールで選択されている項目のデータ キー値を取得します。
public:
virtual property System::Web::UI::WebControls::DataKey ^ SelectedDataKey { System::Web::UI::WebControls::DataKey ^ get(); };
[System.ComponentModel.Browsable(false)]
public virtual System.Web.UI.WebControls.DataKey SelectedDataKey { get; }
[<System.ComponentModel.Browsable(false)>]
member this.SelectedDataKey : System.Web.UI.WebControls.DataKey
Public Overridable ReadOnly Property SelectedDataKey As DataKey
プロパティ値
ListView コントロールで選択されている項目のデータ キー。 既定値は null
です。項目が現在選択されていないことを示します。
- 属性
例外
データ キーが DataKeyNames プロパティに指定されていません。
例
次の例は、マスター/詳細シナリオで 2 番目のキー フィールドをパラメーターとして使用する方法を示しています。
ListViewコントロールは、AdventureWorks データベースの Product Inventory テーブルのレコードを表示するために使用されます。 コントロールで ListView 項目を選択すると、製品の詳細が別 ListView のコントロールに表示されます。 ProductID は、最初 ListView のコントロールの 2 番目のキー名です。 2 番目のキーにアクセスするために、コードは オブジェクトの として ProductInventoryListView.SelectedDataKey[1]
(ProductInventoryListView.SelectedDataKey(1)
Visual Basic の場合) PropertyName の値を ControlParameter 使用します。 このパラメーター オブジェクトは、2 番目ListViewのコントロールがSqlDataSourceバインドされているコントロールによって使用されます。
<%@ 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"> </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>
<%@ 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">
Protected Sub ProductInventoryListView_PagePropertiesChanging(ByVal sender As Object, _
ByVal e As PagePropertiesChangingEventArgs)
ProductInventoryListView.SelectedIndex = -1
End Sub
</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"> </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>
注釈
プロパティが DataKeyNames 設定されている場合、コントロールは、 ListView 指定したフィールドまたはフィールドの値または値を使用して、コントロール内の各項目のオブジェクトを作成 DataKey します。 DataKey コントロールが使用するコントロールのコレクションに追加される DataKeys。 通常、 DataKeys プロパティは、コントロール内の特定の DataKey データ項目のオブジェクトを取得するために使用されます ListView 。 ただし、現在選択されている項目のオブジェクトのみを DataKey 取得する場合は、 プロパティを SelectedDataKey ショートカットとして使用できます。
プロパティのSelectedDataKey使用は、 プロパティでSelectedIndex指定されたインデックスにあるコレクションからDataKeysオブジェクトを取得DataKeyするのと同じです。 プロパティを SelectedValue 使用して、現在選択されている項目のデータ キー値を直接取得することもできます。
オブジェクトを作成していて、最初のControlParameterフィールド以外のキー フィールドにアクセスする場合は、オブジェクトの プロパティでインデックス付きSelectedDataKeyプロパティをPropertyNameControlParameter使用します。
適用対象
こちらもご覧ください
.NET