2012-03-01 79 views
1

好吧我正在使用帶複選框的列可以從GridView中選擇我的數據行。但OnCheckChanged事件不會觸發。我嘗試閱讀文章,使其工作和完全複製代碼,它不會觸發。我正在使用vb.net和asp.netTemplateField ItemTmplate事件中的複選框不會觸發

 <asp:GridView ID="locationDetailGrid" runat="server"> 
     <Columns> 
      <asp:TemplateField> 
       <ItemTemplate > 
        <asp:CheckBox ID="locationSelection" AutoPostBack="true" 
        runat="server" OnCheckedChanged="CheckedChanged" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

Protected Sub CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) 
    Dim checkbox As CheckBox = DirectCast(sender, CheckBox) 
    Dim row As GridViewRow = DirectCast(checkbox.NamingContainer, GridViewRow) 
    Response.Write(row.Cells(0).Text) 
End Sub 

回答

4

可能是因爲你在回發數據綁定的GridView。在你的GridView數據綁定的東西周圍添加一個If Not Page.IsPostback到Page_Load。

如果您在回發時重新綁定GridView,則會阻止觸發事件。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not IsPostBack Then 
     BindGridToDataSourceAndDataBind() 
    End If 
End Sub 
+0

謝謝我知道這是簡單的東西我只是想不通什麼 – cjohnson2136 2012-03-01 21:34:06

+0

你說得對,我也這麼認爲。剛纔我測試過了。它檢查回發數據綁定到gridview後工作。 – 2012-03-01 21:34:46