ListView.SelectedValue 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ListView 컨트롤에서 선택한 항목의 데이터 키 값을 가져옵니다.
public:
property System::Object ^ SelectedValue { System::Object ^ get(); };
[System.ComponentModel.Browsable(false)]
public object SelectedValue { get; }
[<System.ComponentModel.Browsable(false)>]
member this.SelectedValue : obj
Public ReadOnly Property SelectedValue As Object
속성 값
ListView 컨트롤에서 선택한 항목의 데이터 키 값입니다.
- 특성
예제
다음 예제에서는 마스터/세부 정보 시나리오에서 첫 번째 키 필드를 매개 변수로 사용하는 방법을 보여줍니다. 컨트롤에서 ListViewSelectedValue 항목을 선택하면 속성이 개체의 ControlParameter 로 PropertyName 사용됩니다. 이 매개 변수 개체는 두 번째 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 CategoriesListView_OnItemDeleting(object sender, ListViewDeleteEventArgs e)
{
if (SubCategoriesGridView.Rows.Count > 0)
{
MessageLabel.Text = "You cannot delete a category that has sub-categories.";
e.Cancel = true;
}
}
protected void Page_Load()
{
MessageLabel.Text = String.Empty;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Subcategories List</title>
</head>
<body>
<form id="form1" runat="server">
<b>Categories</b>
<br />
<asp:Label ForeColor="Red" runat="server" ID="MessageLabel" /><br />
<asp:ListView runat="server"
ID="CategoriesListView"
OnItemDeleting="CategoriesListView_OnItemDeleting"
DataSourceID="CategoriesDataSource"
DataKeyNames="ProductCategoryID">
<LayoutTemplate>
<table runat="server" id="tblCategories"
cellspacing="0" cellpadding="1" width="440px" border="1">
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td style="width:40px">
<asp:LinkButton runat="server" ID="SelectCategoryButton"
Text="Select" CommandName="Select" />
</td>
</tr>
</ItemTemplate>
<SelectedItemTemplate>
<tr runat="server" style="background-color:#90EE90">
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td style="width:40px">
<asp:LinkButton runat="server" ID="SelectCategoryButton"
Text="Delete" CommandName="Delete" />
</td>
</tr>
</SelectedItemTemplate>
</asp:ListView>
<br />
<b>Subcategories</b>
<asp:GridView runat="server" ID="SubCategoriesGridView" Width="300px"
DataSourceID="SubCategoriesDataSource" DataKeyNames="ProductSubcategoryID"
AutoGenerateColumns="True" />
<!-- 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="CategoriesDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductCategoryID], [Name]
FROM Production.ProductCategory">
</asp:SqlDataSource>
<asp:SqlDataSource ID="SubCategoriesDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductSubcategoryID], [Name]
FROM Production.ProductSubcategory
WHERE ProductCategoryID = @ProductCategoryID
ORDER BY [Name]">
<SelectParameters>
<asp:ControlParameter Name="ProductCategoryID" DefaultValue="0"
ControlID="CategoriesListView" PropertyName="SelectedValue" />
</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 CategoriesListView_OnItemDeleting(sender As Object, e As ListViewDeleteEventArgs)
If SubCategoriesGridView.Rows.Count > 0 Then
MessageLabel.Text = "You cannot delete a category that has sub-categories."
e.Cancel = True
End If
End Sub
Protected Sub Page_Load()
MessageLabel.Text = String.Empty
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Subcategories List</title>
</head>
<body>
<form id="form1" runat="server">
<b>Categories</b>
<br />
<asp:Label ForeColor="Red" runat="server" ID="MessageLabel" /><br />
<asp:ListView runat="server"
ID="CategoriesListView"
OnItemDeleting="CategoriesListView_OnItemDeleting"
DataSourceID="CategoriesDataSource"
DataKeyNames="ProductCategoryID">
<LayoutTemplate>
<table runat="server" id="tblCategories"
cellspacing="0" cellpadding="1" width="440px" border="1">
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td style="width:40px">
<asp:LinkButton runat="server" ID="SelectCategoryButton"
Text="Select" CommandName="Select" />
</td>
</tr>
</ItemTemplate>
<SelectedItemTemplate>
<tr runat="server" style="background-color:#90EE90">
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td style="width:40px">
<asp:LinkButton runat="server" ID="SelectCategoryButton"
Text="Delete" CommandName="Delete" />
</td>
</tr>
</SelectedItemTemplate>
</asp:ListView>
<br />
<b>Subcategories</b>
<asp:GridView runat="server" ID="SubCategoriesGridView" Width="300px"
DataSourceID="SubCategoriesDataSource" DataKeyNames="ProductSubcategoryID"
AutoGenerateColumns="True" />
<!-- 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="CategoriesDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductCategoryID], [Name]
FROM Production.ProductCategory">
</asp:SqlDataSource>
<asp:SqlDataSource ID="SubCategoriesDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductSubcategoryID], [Name]
FROM Production.ProductSubcategory
WHERE ProductCategoryID = @ProductCategoryID
ORDER BY [Name]">
<SelectParameters>
<asp:ControlParameter Name="ProductCategoryID" DefaultValue="0"
ControlID="CategoriesListView" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
</form>
</body>
</html>
다음 예제에서는 사용 하는 방법에 설명 합니다 SelectedValue 키 필드의 값을 확인 하는 속성입니다.
<%@ 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 DepartmentsListView_SelectedIndexChanged(object sender, EventArgs e)
{
MessageLabel.Text = "The key value is " +
DepartmentsListView.SelectedValue.ToString() + ".";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListView SelectedValue Example</title>
<style type="text/css">
.header
{
border: 1px solid #008080;
background-color: #008080;
color: White;
}
.item td { border: 1px solid #008080; }
.selection td
{
border: 1px solid #008080;
background-color: #7FFF00;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<h3>ListView SelectedValue Example</h3>
<asp:ListView runat="server"
ID="DepartmentsListView"
DataSourceID="DepartmentDataSource"
DataKeyNames="DepartmentID"
OnSelectedIndexChanged="DepartmentsListView_SelectedIndexChanged">
<LayoutTemplate>
<b>Department List</b>
<br />
<table width="500px" runat="server" id="tblDepartments">
<tr class="header" runat="server">
<th runat="server"> </th>
<th runat="server">Department Name</th>
<th runat="server">Group Name</th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr class="item" runat="server">
<td>
<asp:LinkButton runat="server"
ID="SelectButton"
Text="Select"
CommandName="Select" />
</td>
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td>
<asp:Label runat="server" ID="GroupNameLabel" Text='<%#Eval("GroupName") %>' />
</td>
</tr>
</ItemTemplate>
<SelectedItemTemplate>
<tr class="selection" runat="server">
<td> </td>
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td>
<asp:Label runat="server" ID="GroupNameLabel" Text='<%#Eval("GroupName") %>' />
</td>
</tr>
</SelectedItemTemplate>
</asp:ListView>
<br/>
<asp:Label ID="MessageLabel"
ForeColor="Red"
runat="server"/>
<!-- 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="DepartmentDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department">
</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 DepartmentsListView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
MessageLabel.Text = "The key value is " & _
DepartmentsListView.SelectedValue.ToString() & "."
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListView SelectedValue Example</title>
<style type="text/css">
.header
{
border: 1px solid #008080;
background-color: #008080;
color: White;
}
.item td { border: 1px solid #008080; }
.selection td
{
border: 1px solid #008080;
background-color: #7FFF00;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<h3>ListView SelectedValue Example</h3>
<asp:ListView runat="server"
ID="DepartmentsListView"
DataSourceID="DepartmentDataSource"
DataKeyNames="DepartmentID"
OnSelectedIndexChanged="DepartmentsListView_SelectedIndexChanged">
<LayoutTemplate>
<b>Department List</b>
<br />
<table width="500px" runat="server" id="tblDepartments">
<tr class="header" runat="server">
<th runat="server"> </th>
<th runat="server">Department Name</th>
<th runat="server">Group Name</th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr class="item" runat="server">
<td>
<asp:LinkButton runat="server"
ID="SelectButton"
Text="Select"
CommandName="Select" />
</td>
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td>
<asp:Label runat="server" ID="GroupNameLabel" Text='<%#Eval("GroupName") %>' />
</td>
</tr>
</ItemTemplate>
<SelectedItemTemplate>
<tr class="selection" runat="server">
<td> </td>
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td>
<asp:Label runat="server" ID="GroupNameLabel" Text='<%#Eval("GroupName") %>' />
</td>
</tr>
</SelectedItemTemplate>
</asp:ListView>
<br/>
<asp:Label ID="MessageLabel"
ForeColor="Red"
runat="server"/>
<!-- 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="DepartmentDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department">
</asp:SqlDataSource>
</form>
</body>
</html>
설명
속성은 DataKeyNames 데이터 원본의 기본 키를 나타내는 필드 이름의 쉼표로 구분된 목록으로 설정할 수 있습니다. 설정된 경우 컨트롤은 ListView 지정된 필드 또는 필드의 값 또는 값을 사용하여 컨트롤의 각 항목에 대한 개체를 자동으로 만듭니다 DataKey . DataKey 그런 다음 개체가 컨트롤의 DataKeys 컬렉션에 추가됩니다.
일반적으로 속성은 DataKeys 컨트롤의 DataKey 특정 데이터 항목 ListView 에 대한 개체를 가져오는 데 사용됩니다. 그러나 현재 선택한 항목의 개체만 DataKey 얻으려면 속성을 바로 가기로 사용할 SelectedDataKey 수 있습니다. 속성을 사용하여 SelectedValue 선택한 항목의 첫 번째 키 필드의 데이터 키 값을 직접 확인할 수도 있습니다.
개체를 ControlParameter 만들고 첫 번째 필드가 아닌 키 필드에 액세스하려는 경우 속성을 사용합니다 SelectedDataKey . 예를 들어 참조 된 SelectedDataKey 속성입니다.
적용 대상
추가 정보
.NET