后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class temp : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection sqlCon;
        SqlCommand sqlcom;
        string strString = @"Data Source=237214A194D24DB\SQLEXPRESS;DataBase=Address;user id=sa;password=123";
        sqlCon = new SqlConnection(strString);
        string sqlString = "select * from addresslists";
        sqlcom = sqlCon.CreateCommand();
        sqlcom.CommandText = sqlString;
        sqlCon.Open();
        SqlDataReader dr = sqlcom.ExecuteReader();
        GridView1.DataSource = dr;
        GridView1.DataBind();
        sqlCon.Close();    }
    protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
    {
        for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
        {
            CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
            if (CheckBox2.Checked == true)
            {
                cbox.Checked = true;
            }
            else
            {
                cbox.Checked = false;
            }
        }    }
}
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="temp.aspx.cs" Inherits="temp" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:CheckBox ID="CheckBox2" runat="server" OnCheckedChanged="CheckBox2_CheckedChanged" /></div>
    </form>
</body>
</html>
为什么不能实现全选呢 点击 checkbox2没有反应

解决方案 »

  1.   

    function CheckAll(form1)
    {
      for (var i=0;i <form1.elements.length;i++)
          {
            var e = form1.elements[i];
            if (e.Name != "CheckBox2"&&e.disabled==false)
                e.checked = form1.CheckBox2.checked;      }
    }
    form1改为你的
      

  2.   

    少了一个属性
    <asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="true" OnCheckedChanged="CheckBox2_CheckedChanged" /> 
      

  3.   

    楼上正解!!!需要回发服务器!!设置 AutoPostBack="true"
      

  4.   

    刚才试了,利用AutoPostBack="true"是对的,但是为什么要回发服务器呢
      

  5.   

    设置 AutoPostBack="true"    protected void CheckBox2_CheckedChanged(object sender, EventArgs e) 
        { 
            if (CheckBox2.Checked == true) 
            {
               for (int i = 0; i <= GridView1.Rows.Count - 1; i++) 
               { 
                   CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1"); 
                   cbox.Checked = true; 
               }         } 
             else 
             { 
               cbox.Checked = false; 
             } 
        }    } 
    }