带有选择按钮,边界和复选框的Gridview。将数据绑定到gridview工作正常。 (数据库中的数据包含bounfield的NVARCHAR列和复选框的BIT列。
通过'选择'选择行按钮,代码隐藏中的事件被触发,来自gridview的2个单元格中的数据被复制到页面上的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; }
这是我在选择迈克尔的行时所得到的:
在网格视图中,Michael是&#34; Active&#34;,我需要选中顶部的复选框进行检查&#39;。
怎么做到呢...?深受欢迎。
答案 0 :(得分:3)
使用CheckBoxFields和CheckBoxes,您需要获取Text
值以了解它是否实际被检查过。 Checked
值实际上是CheckBox的另一个属性(请参阅MSDN)。您有时会在CheckBox本身的左侧或右侧看到此文本。
所以你需要做的是先获取CheckBox。然后使用该CheckBox的CheckBox checkBox = (CheckBox)grv_Test1.Rows[my_Data_From_Grid].Cells[2].Controls[0];
cbx_Test1_Active.Checked = checkBox.Checked;
属性。
jQuery.ajax()