假設在 GirdView 欄位的 ItemTemplate 中放置 CheckBox 控制項,然後設定該 CheckBox 的 AutoPostBack 為 True,希望在 CheckBox 的CheckedChanged 事件撰寫相關程式碼。
*.aspx 的程式碼如下
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" Checked='<%# Bind("Discontinued") %>'
OnCheckedChanged="CheckBox1_CheckedChanged" />
</EditItemTemplate>
一般在 CheckBox 的 CheckedChanged 事件需要它是由那個資料列的 CheckBox 所引發的 PostBack。可以撰寫如下的程式碼,取得控制項所屬的 GridViewRow 及 RowIndex。
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" Checked='<%# Bind("Discontinued") %>'
OnCheckedChanged="CheckBox1_CheckedChanged" />
</EditItemTemplate>
1 Protected Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
2 Dim oCheckBox As CheckBox
3 Dim oGridViewRow As GridViewRow
4 Dim iRowIndex As Integer
5
6 oCheckBox = CType(sender, CheckBox)
7
8 '取得控制項所屬性 GridViewRow
9 oGridViewRow = CType(oCheckBox.BindingContainer, GridViewRow)
10
11 '取得目前 GridViewRow 的索引
12 iRowIndex = oGridViewRow.RowIndex
13 End Sub
2 Dim oCheckBox As CheckBox
3 Dim oGridViewRow As GridViewRow
4 Dim iRowIndex As Integer
5
6 oCheckBox = CType(sender, CheckBox)
7
8 '取得控制項所屬性 GridViewRow
9 oGridViewRow = CType(oCheckBox.BindingContainer, GridViewRow)
10
11 '取得目前 GridViewRow 的索引
12 iRowIndex = oGridViewRow.RowIndex
13 End Sub