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