我在GirdView中加入了一列显示数据库中一列Bool类型的数据,用CheckBox显示,怎么才能让这一列CheckBox可以单击选中,并且能获得这个值呢,因为我想在后面用一个BUTTON直接更新这个BOOL数据,在CHECKBOX中选中与否,直接点击BUTTON就能把值更新到数据库中.本人新手..求高手指点

解决方案 »

  1.   

    能说的详细一些么.FindControl("ID")好像不行啊.
      

  2.   

    在前台页面添加控件类似这个
    <asp:TemplateField>
                            <ItemTemplate>
                            <input id="CheckBox1" runat=server type=checkbox onclick="javascript:CheckValue(this,'txtUserId');" />
                            </ItemTemplate>
                            <HeaderTemplate>
                            <input id="CheckBox2" type=checkbox onclick="javascript:SelectAll(this,'txtUserId','grv_flight');" />
                            </HeaderTemplate>
                            </asp:TemplateField>
    在绑定事件中把bool数据赋值给checkbox  
      protected void grv_flight_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                HtmlInputCheckBox box = (HtmlInputCheckBox)e.Row.Cells[0].FindControl("CheckBox1");
                DataRowView row = (DataRowView)e.Row.DataItem;
                box.Value = row["字段名称"].ToString();
            }
        }
    写个js函数checkbox的onclick事件选中时候把值保存到一个隐藏控件中
    操作这些选中的值的时候读隐藏控件的value值就可以
      

  3.   

    直接在GirdView中加入的CHECKBOX是灰色的,只能显示不能选中,就是这个问题..
      

  4.   

    回3楼的,我的本意是要解决在GirdView中的CHECKBOX的问题.,不是单独添加一个CHECKBOX,因为还有其他数据要显示
      

  5.   


       <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BorderColor="Red" DataSourceID="SqlDataSource1"  OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:CheckBox ID="cb" runat="server" /> 
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Button ID="Button1" runat="server" Text="Button" CommandName="select" />
                        </ItemTemplate>
                    </asp:TemplateField>
                   
                </Columns>
            </asp:GridView>
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowIndex != -1)
                {
                    int id = e.Row.RowIndex;
                    Button btn = e.Row.FindControl("Button1") as Button;
                    btn.CommandArgument = id.ToString();
                }
            }        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName == "select")
                {
                    int a=0;
                    CheckBox cb=(CheckBox)this.GridView1.Rows[Int32.Parse(e.CommandArgument.ToString())].FindControl("cb");
                    if (cb.Checked)
                        a = 1;
                    //checkbox 没选中 a=0 选中a=1            }
            }