asp.net检查gridview中的复选框是否已选中

时间:2016-02-29 15:31:46

标签: asp.net gridview checkbox

带有选择按钮,边界和复选框的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; }

这是我在选择迈克尔的行时所得到的:
enter image description here
在网格视图中,Michael是&#34; Active&#34;,我需要选中顶部的复选框进行检查&#39;。
怎么做到呢...?深受欢迎。

1 个答案:

答案 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()