【发布时间】:2012-02-16 06:41:03
【问题描述】:
我有一个GridView,第一列有一个复选框:
<asp:GridView ID="dgNumeradores" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="ItemID">
<Columns>
<asp:TemplateField HeaderText="Seleccionar">
<ItemTemplate>
<asp:CheckBox runat="server" ID="chkChecked" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Item" DataField="Description">
</asp:BoundField>
<asp:BoundField HeaderText="Plantilla" DataField="Template">
</asp:BoundField>
</Columns>
</asp:GridView>
现在在后面的代码中,我尝试更新作为 GridView 的数据源的 DataTable 上的 Checked 列(因为如上所示,Checkbox 列未绑定到数据源你可能知道的原因。):
Protected Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Try
For Each dr As GridViewRow In Me.dgNumeradores.Rows
Me.itemsNumTable.Select("ItemID = '" & dgNumeradores.DataKeys(dr.RowIndex).Value & "'")(0)("Checked") = DirectCast(dr.Cells(0).FindControl("chkChecked"), CheckBox).Checked
Next
'Some more unimportant-for-this-question code
Catch ex As Exception
tableInfo.ShowError(ex.Message)
End Try
End Sub
问题是Checkbox.Checked 总是返回False。
在这种情况下如何获得复选框的选中状态?或者更新上述专栏的最佳方法是什么?
附:请注意,单击复选框不会回发。在用户单击 Save 之前,页面上没有任何反应(这是预期的行为)。
【问题讨论】:
标签: asp.net vb.net gridview checkbox