GridView.OnSelectedIndexChanged(EventArgs) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
SelectedIndexChanged 이벤트를 발생시킵니다.
protected:
virtual void OnSelectedIndexChanged(EventArgs ^ e);
protected virtual void OnSelectedIndexChanged (EventArgs e);
abstract member OnSelectedIndexChanged : EventArgs -> unit
override this.OnSelectedIndexChanged : EventArgs -> unit
Protected Overridable Sub OnSelectedIndexChanged (e As EventArgs)
매개 변수
예제
다음 예제에서는 이벤트에 대 한 이벤트 처리기를 만드는 방법을 보여 있습니다 SelectedIndexChanged . 이 예제에서는 선택한 행이 뷰 상태로 유지됩니다. 따라서 정렬 또는 페이징 작업 후에도 해당 행만 선택됩니다.
<%@ 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 ContactsGridView_SelectedIndexChanged(object sender, EventArgs e)
{
if (ContactsGridView.SelectedIndex >= 0)
ViewState["SelectedKey"] = ContactsGridView.SelectedValue;
else
ViewState["SelectedKey"] = null;
}
protected void ContactsGridView_DataBound(object sender, EventArgs e)
{
for (int i = 0; i < ContactsGridView.Rows.Count; i++)
{
// Ignore values that cannot be cast as integer.
try
{
if ((int)ContactsGridView.DataKeys[i].Value == (int)ViewState["SelectedKey"])
ContactsGridView.SelectedIndex = i;
}
catch { }
}
}
protected void ContactsGridView_Sorting(object sender, GridViewSortEventArgs e)
{
ContactsGridView.SelectedIndex = -1;
}
protected void ContactsGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
ContactsGridView.SelectedIndex = -1;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>GridView OnSelectedIndexChanged Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView OnSelectedIndexChanged Example</h3>
<asp:GridView ID="ContactsGridView"
DataSourceID="ContactsDataSource"
DataKeyNames="ContactID"
AutoGenerateSelectButton="True"
OnSelectedIndexChanged="ContactsGridView_SelectedIndexChanged"
AllowPaging="True" AllowSorting="True"
OnDataBound="ContactsGridView_DataBound"
OnSorting="ContactsGridView_Sorting"
OnPageIndexChanging="ContactsGridView_PageIndexChanging"
runat="server">
<SelectedRowStyle BackColor="Aqua" />
</asp:GridView>
<!-- 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="ContactsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ContactID], [FirstName], [LastName] FROM Person.Contact">
</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 ContactsGridView_SelectedIndexChanged()
If ContactsGridView.SelectedIndex >= 0 Then
ViewState("SelectedKey") = ContactsGridView.SelectedValue
Else
ViewState("SelectedKey") = Nothing
End If
End Sub
Protected Sub ContactsGridView_DataBound()
For i As Integer = 0 To ContactsGridView.Rows.Count - 1
' Ignore values that cannot be cast as integer.
Try
If Convert.ToInt32(ContactsGridView.DataKeys(i).Value) = Convert.ToInt32(ViewState("SelectedKey")) Then _
ContactsGridView.SelectedIndex = i
Catch
End Try
Next
End Sub
Protected Sub ContactsGridView_Sorting()
ContactsGridView.SelectedIndex = -1
End Sub
Protected Sub ContactsGridView_PageIndexChanging()
ContactsGridView.SelectedIndex = -1
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>GridView OnSelectedIndexChanged Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView OnSelectedIndexChanged Example</h3>
<asp:GridView ID="ContactsGridView"
DataSourceID="ContactsDataSource"
DataKeyNames="ContactID"
AutoGenerateSelectButton="True"
OnSelectedIndexChanged="ContactsGridView_SelectedIndexChanged"
AllowPaging="True" AllowSorting="True"
OnDataBound="ContactsGridView_DataBound"
OnSorting="ContactsGridView_Sorting"
OnPageIndexChanging="ContactsGridView_PageIndexChanging"
runat="server">
<SelectedRowStyle BackColor="Aqua" />
</asp:GridView>
<!-- 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="ContactsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ContactID], [FirstName], [LastName] FROM Person.Contact">
</asp:SqlDataSource>
</form>
</body>
</html>
설명
행 SelectedIndexChanged 의 선택 단추를 클릭하지만 컨트롤이 선택 작업을 처리한 후에 GridView 이벤트가 발생합니다. 이렇게 하면 이 이벤트가 발생할 때마다 현재 선택한 행으로 상태 레이블을 업데이트하는 등 사용자 지정 루틴을 수행하는 이벤트 처리 메서드를 제공할 수 있습니다.
이벤트가 발생하면 대리자를 통해 이벤트 처리기가 호출됩니다. 자세한 내용은 이벤트 처리 및 발생합니다.
또한 OnSelectedIndexChanged 메서드를 사용하면 파생 클래스가 대리자를 연결하지 않고도 이벤트를 처리할 수 있습니다. 이는 파생 클래스에서 이벤트를 처리하는 기본 방법입니다.
상속자 참고
파생 클래스에서 OnSelectedIndexChanged(EventArgs)를 재정의하는 경우 등록된 대리자가 이벤트를 받도록 기본 클래스의 OnSelectedIndexChanged(EventArgs) 메서드를 호출해야 합니다.
적용 대상
추가 정보
.NET