2016-02-29 113 views
2

的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; } 

这里是我选择迈克尔的行时:
enter image description here
在GridView迈克尔是“活动”,我需要的复选框顶部被检查'。
怎么做...? Thnaks很多。

回答

3

随着CheckBoxFields和复选框,你需要得到Checked值知道它是否被实际检查。 Text值实际上是CheckBox的另一个属性(请参阅MSDN)。您有时会将此文本看到CheckBox本身的左侧或右侧。

所以,你需要做的是先拿到复选框什么。然后使用该CheckBox的Checked属性。

CheckBox checkBox = (CheckBox)grv_Test1.Rows[my_Data_From_Grid].Cells[2].Controls[0]; 
cbx_Test1_Active.Checked = checkBox.Checked; 
+0

你是我的男人!!!!完美的作品。非常感谢sooooooo。 – gadi

+0

不客气!很高兴我能帮上忙。 –