http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459

解决方案 »

  1.   

    客户端可以用a=document.getElementsByTagName("INPUT")
    for(i=0;i<a.length;i++)
    {
    if(a[i].type=="checkbox") a[i].checked=true
    }
      

  2.   

    你也可以用oncheckchange这个事件
      

  3.   

    楼上的能给出一个完整的代码吗?你的好象只能说明一般的问题,却没把问题结合到datagrid数据表啊。继续虚心请教!
      

  4.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459
    这个文件有点类似,只是要求的是选checkbox时,包括这行下面的所有行都要被选中。同时状态跟选的那个一样。当取消chengbox“钩”时也一样。同时不能用postback。
      

  5.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459
    拿过去改一下不就可以了
      

  6.   

    a=document.getElementsByTagName("INPUT")
    for(i=0;i<a.length;i++)
    {
    if(a[i].type=="checkbox") a[i].checked=true
    }这个是全选。本题的思想是先确定选择的那个checkbox的数组号,之后再从这个开始循环执行,这个思想有人能解决吗
      

  7.   

    问题已解,谢谢各位大哥。一.题目:
    一个用datagrid来显示sql server或者access数据库的aspx文件
    其中控件有:
    一个datagrid,id=datagrid1,其中有一个checkbox模板列
    一个BUTTON按扭,id=button1
    问题:
    1.在客户端执行按下其中的一行的checkbox,这一行以后的数据行的checkbox状态都跟着按下的那行checkbox状态一样。
    注意:不能用postback(即是不能在服务器端执行)
    2.按下button1返回datagrid1中checkbox列所有被选中的行的任一列数据,并显示出来。DataGrid控件添加CheckBox操作,并实现“全选”功能。以下是实现的例子
    http://huangtao11cn.vicp.net/university/unv.aspx二.解决方案:前台代码:<%@ Page Language="vb" AutoEventWireup="false" Codebehind="unv.aspx.vb" Inherits="university.WebForm1"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>WebForm1</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    <script language="javascript">
    //全选函数
    function selectAll()
    {
      a=document.getElementsByTagName("INPUT");
      if(document.Form1.select_all.value=="全选")
        {
         for(i=0;i<a.length;i++)
          {
           if(a[i].type=="checkbox") 
             {
              a[i].checked=true;
              document.Form1.select_all.value="全不选";
             }
          }
        }
       else
         for(i=0;i<a.length;i++)
          {
           if(a[i].type=="checkbox")
            {
           a[i].checked=false;
           document.Form1.select_all.value="全选";
            }
          }
          
          addToHideText()
    }//选定函数
    function changeState(v)
    {
        var bool,bool_1 =false;
        var n=0;
    a=document.getElementsByTagName("INPUT");

    for(i=0;i<a.length;i++)
    {
    if(a[i].type=="checkbox" && a[i].value==v)
    {
        bool_1=true;
    a[i].checked!=a[i].checked;
    n=i;
    bool=a[i].checked;
    }

         }
        for(i=n;i<a.length;i++)
     {
    a[i].checked=bool;
     }
    addToHideText()
    }//记录被选择的CHECKBOX的值,把值赋给一个隐藏文本框
    function addToHideText()
    {
      document.Form1.hidetext.value="";
      a=document.getElementsByTagName("INPUT");
      for(i=0;i<a.length;i++)
      {
        if(a[i].type=="checkbox" && a[i].checked)
        {
        document.Form1.hidetext.value+=a[i].value+";"
        }
      
      }}
    </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <FONT face="宋体">
    <asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 176px; POSITION: absolute; TOP: 64px"
    runat="server" Width="320px" Height="160px" AutoGenerateColumns="False">
    <Columns>
    <asp:TemplateColumn HeaderText="操作">
    <HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
    <ItemTemplate>
    <Input type="CheckBox" ID="chkExport"  value='<%# (DataBinder.Eval(Container.DataItem, "ID"))%>'onclick="changeState(value)" />
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="ID"></asp:BoundColumn>
    <asp:BoundColumn DataField="u_name" ReadOnly="True" HeaderText="高校名称"></asp:BoundColumn>
    </Columns>
    </asp:datagrid><INPUT id="hidetext" style="Z-INDEX: 105; LEFT: 176px; POSITION: absolute; TOP: 32px" type="hidden"
    runat="server"><INPUT id="select_all" style="Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 256px"
    onclick="selectAll()" type="button" value="全选">
    <asp:button id="Button1" style="Z-INDEX: 103; LEFT: 376px; POSITION: absolute; TOP: 256px" runat="server"
    Width="112px" Text="查看被选择的项目"></asp:button><asp:label id="Label1" style="Z-INDEX: 104; LEFT: 184px; POSITION: absolute; TOP: 304px" runat="server"
    Width="304px" Height="168px"></asp:label></FONT></form>
    </body>
    </HTML>
    后台代码(VB):Imports System.Data.OleDb
    Public Class WebForm1
        Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 "    '该调用是 Web 窗体设计器所必需的。
         Private Sub InitializeComponent()    End Sub
        Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
        Protected WithEvents Button1 As System.Web.UI.WebControls.Button
        Protected WithEvents Label1 As System.Web.UI.WebControls.Label
        Protected WithEvents hidetext As System.Web.UI.HtmlControls.HtmlInputHidden    '注意: 以下占位符声明是 Web 窗体设计器所必需的。
        '不要删除或移动它。
        Private designerPlaceholderDeclaration As System.Object    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
            '不要使用代码编辑器修改它。
            InitializeComponent()
        End Sub#End Region
        '定义公共变量
        Dim myconnection As OleDbConnection
        Dim dbno As Integer
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            dbConnection()
            gridBind()
        End Sub
        '数据库连接
        Sub dbConnection()
            myconnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=" & Server.MapPath("database\university.mdb"))
        End Sub
        'datagrid数据绑定
        Sub gridBind()
            Dim myadapter As New OleDbDataAdapter("select top 10 * from university", myconnection)
            Dim mydataset As New DataSet
            myadapter.Fill(mydataset)
            DataGrid1.DataSource = mydataset
            DataGrid1.DataBind()
            dbno = DataGrid1.Items.Count '取得DATAGRID数据行数
        End Sub
        '查看被选中的数据项
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim strshow As String
            Dim strarray() As String
            Dim sid As String = hidetext.Value
            strarray = Split(sid, ";")
            Dim i As Integer
            For i = 0 To strarray.Length - 2
                strshow += DataGrid1.Items(Int(strarray(i)) - 1).Cells(2).Text + "<br>"
            Next        If strshow  "" Then
                Label1.Text = strshow
            Else
                Label1.Text = "没有选择的项目"
            End If    End Sub
    End Class
    三.参考资料:
    MSDN
    http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459
    http://community.csdn.net/Expert/topic/2968/2968998.xml?temp=.963833