GridView 中的子控制項取得所屬的 GridViewRow 及 RowIndex

假設在 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。

 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

你可能感兴趣的:(GridView)