的GridView有选择按钮,一个BoundField和一个复选框。将数据绑定到gridview可以正常工作。 (数据库中的数据具有用于bounfield的NVARCHAR列和用于复选框的BIT列asp.net检查,如果复选框中的GridView检查
当通过“选择”按钮选择一行时,会触发代码隐藏中的事件,并且来自2来自gridview的单元格被复制到页面上的2个控件:一个文本框和一个复选框
第一个工作正常,我不知道如何检查GridView中的复选框是否被选中。知道这样我就可以相应地填充其他复选框控件
(在我粘贴我的代码之前:我只花了12个小时在SO和其他地方寻找解决方案,没有很多条目都有帮助。我... )
<asp:GridView ID="grv_Test1" runat="server" CssClass="myGrid"
AutoGenerateColumns="False" DataKeyNames="Test1_First_Name"
OnRowCommand="grv_Test1_RowCommand">
<Columns>
<asp:CommandField SelectText="sel'" ShowSelectButton="True" ControlStyle-CssClass="btn btn-primary myBtn-xs">
</asp:CommandField>
<asp:BoundField DataField="Test1_First_Name" HeaderText="Name"><HeaderStyle Width="85px" />
</asp:BoundField>
<asp:CheckBoxField DataField="Test1_Active" HeaderText="Active">
</asp:CheckBoxField>
</Columns>
<HeaderStyle CssClass="myGridHeader" />
</asp:GridView>
后面的代码:
int my_Data_From_Grid = Convert.ToInt32(e.CommandArgument);
txb_Test1_Name.Text = grv_Test1.Rows[my_Data_From_Grid].Cells[1].Text; // this works
cbx_Test1_Active.Text = grv_Test1.Rows[my_Data_From_Grid].Cells[2].Text; // NOT working
if (Convert.ToString(grv_Test1.Rows[my_Data_From_Grid].Cells[2].Text) == "1") // NOT working either
{ cbx_Test1_Active.Checked = true; }
else
{ cbx_Test1_Active.Checked = false; }
if (Convert.ToString(grv_Test1.Rows[my_Data_From_Grid].Cells[2].Text) == "True") // NOT working either
{ cbx_Test1_Active.Checked = true; }
else
{ cbx_Test1_Active.Checked = false; }
这里是我选择迈克尔的行时:
在GridView迈克尔是“活动”,我需要的复选框顶部被检查'。
怎么做...? Thnaks很多。
你是我的男人!!!!完美的作品。非常感谢sooooooo。 – gadi
不客气!很高兴我能帮上忙。 –