我要实现的功能是点击全选,然后再点一个安钮,把所选中的那些列全部更新,我现在全选已经实现,代码如下:
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
    {
        int i;
        if (((CheckBox)sender).Checked)
        {
            for (i = 0; i < GridView1.Rows.Count; i++)
            {
                ((CheckBox)GridView1.Rows[i].FindControl("CheckBox2")).Checked = true;
            }
        }
        else
        {
            for (i = 0; i < GridView1.Rows.Count; i++)
            {
                ((CheckBox)GridView1.Rows[i].FindControl("CheckBox2")).Checked = false;
            }
        }
    }
--------------------------------------------
在HMTL中绑定CheckBox列的代码:
<asp:TemplateField HeaderText="选取" SortExpression="Ispass">
                    <HeaderTemplate>
                        全选<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox2_CheckedChanged" />
                    </HeaderTemplate>
                        <EditItemTemplate>
                            <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("isPass") %>' />
                        </EditItemTemplate>
                        <ItemTemplate>
                        <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("isPass") %>' />
                    </ItemTemplate>
                    </asp:TemplateField>

解决方案 »

  1.   

    一般来说,还是按照你编辑以后的数据逐条更新数据;如果你的更新是放在DataSet里面的,在按钮以后对你的数据去更新数据库;不过说实话不推荐这么做,因为这样的话就算你没有更新也会对所有的数据进行更新,很浪费资源;
      

  2.   

    checkBox列绑定的是bit型字段,为0的显示出来,全选后,把该字段更新成1
      

  3.   

    function checkallorno(o) {
    var a = o; while (true) {
    var a = a.parentElement;
    if (a == null) {
    break;
    }
    if ( a == "undefined") {
    a = null;
    break;
    }
    if (a.tagName == "TABLE") {
    break;
    }
    }
    if (a != null) {
    for (i = 0;i < a.rows.length; i++) {
    for (j = 0;j < a.rows[i].cells[0].children.length; j++) {
    var var1 = a.rows[i].cells[0].children[j];
    if (var1.tagName == "INPUT" ) {
    if (var1.type == "checkbox") {
    var1.checked = o.checked;
    }
    }
    }
    }
    }
    }
      

  4.   

    全选更新的样例代码    protected void btnUpdate_Click(object sender, EventArgs e)
        {
            CheckBox chk;
            foreach (GridViewRow r in GridView1.Rows)
            {
                chk = (CheckBox)r.FindControl("CheckBox2");
                if (chk != null)
                {
                    if (chk.Checked)
                    {
                         //用GridView1.DataKeys[r.RowIndex].Value.ToString()找到主键列的值,然后进行更新操作
                    }
                }
            }        BindGrid();//重新绑定数据
        }
      

  5.   

    楼主想随意更新整个list表格里的任意一个字段的数据?是不是这个意思?
      

  6.   

    谢谢各位,更新已经解决,刚才各位说全选都用的是JAVA脚本,可是只给出来了脚本,GridView怎么调用啊