<input type="checkbox" name="list" value="1"><input type="checkbox" name="list" value="2"><input type="checkbox" name="list" value="3">
<input id="Button1" type="button" value="button"  onclick="qxuan()"/> <script type="text/javascript">
    function qxuan()
    {
        var kj=document.getElementById("CheckBoxList2")
        for(i=0;i<kj.length;i++)
        {
            kj[i].checked=true;
        }
     }  
    </script>
Button1的onclick实现对checkbox的全选操作。可checkbox是html控件。
1、javascript可以对服务器控件操作么?
2、如果可以这个函数怎么修改才可以可以对服务器控件操作?如CheckBoxList服务器控件进行全选?

解决方案 »

  1.   

    给Button1绑定客户端事件控制其不回刷即可<asp:Button runat="server" ID="Button1" onclick="javascript:qxuan();return false;"></asp:Button>
      

  2.   

    javascript可以对服务器控件CheckBoxList全选操作么?
      

  3.   

    <%@ Page Language="C#" AutoEventWireup="true" EnableViewState="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
      // 计算数据,完全可以从数据看取得
      ICollection CreateDataSource()
      {
        System.Data.DataTable dt = new System.Data.DataTable();
        System.Data.DataRow dr;
        dt.Columns.Add(new System.Data.DataColumn("序号", typeof(System.String)));
        dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
        dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
        dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
        dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
        dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));    for (int i = 0; i < 8; i++)
        {
          System.Random rd = new System.Random(Environment.TickCount * i); ;
          dr = dt.NewRow();
          dr[0] = i.ToString();
          dr[1] = "【孟子E章】" + i.ToString();
          dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
          dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
          dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
          dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
          dt.Rows.Add(dr);
        }
        System.Data.DataView dv = new System.Data.DataView(dt);
        return dv;
      }  protected void Page_Load(object sender, EventArgs e)
      {
        if (!IsPostBack)
        {      GridView2.DataSource = GridView1.DataSource = CreateDataSource();
          GridView2.DataBind();
          GridView1.DataBind();
        }
      }  protected void Button1_Click(object sender, EventArgs e)
      {
        Ret1.Text = "";
        foreach (GridViewRow gvr in GridView1.Rows)
        {
          CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
          if (ch.Checked)
          {
            Ret1.Text += "<li>GridView1 您选择的是(键值):" + GridView1.DataKeys[gvr.DataItemIndex].Value.ToString();
          }
        }
      }  protected void Button2_Click(object sender, EventArgs e)
      {
        Ret2.Text = "";
        foreach (GridViewRow gvr in GridView2.Rows)
        {
          CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
          if (ch.Checked)
          {
            Ret2.Text += "<li>GridView2 您选择的是(键值):" + GridView2.DataKeys[gvr.DataItemIndex].Value.ToString();
          }
        }
      }  protected void CheckAll(object sender, EventArgs e)
      {
        CheckBox cbx = (CheckBox)sender;
        foreach (GridViewRow gvr in GridView1.Rows)
        {
          CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
          ch.Checked = cbx.Checked;
        }
      }
    </script><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>GridView 实现服务器端和客户端全选的两种方法</title>  <script type="text/javascript">
      //<![CDATA[
      function CheckAll(oCheckbox)
      {
       var GridView2 = document.getElementById("<%=GridView2.ClientID %>");
       for(i = 1;i < GridView2.rows.length; i++)
       {
        GridView2.rows[i].cells[0].getElementsByTagName("INPUT")[0].checked = oCheckbox.checked;
       }
      }
      
      //]]>
      </script></head>
    <body>
      <form id="Form1" runat="server">
        <table style="width:800px;font-size:12px;">
          <tr valign="top">
            <td>
              <asp:GridView ID="GridView1" runat="server" Font-Size="12px" BackColor="#FFFFFF"
                GridLines="Both" CellPadding="4" DataKeyNames="序号" AutoGenerateColumns="false">
                <HeaderStyle BackColor="#EDEDED" Height="26px" />
                <Columns>
                  <asp:TemplateField>
                    <HeaderTemplate>
                      <asp:CheckBox ID="CheckBox1" runat="server" Text="全选" AutoPostBack="true" OnCheckedChanged="CheckAll" />
                    </HeaderTemplate>
                    <ItemTemplate>
                      <asp:CheckBox ID="ItemCheckBox" runat="server" />
                    </ItemTemplate>
                  </asp:TemplateField>
                  <asp:BoundField DataField="学生姓名" HeaderText="学生姓名" />
                  <asp:BoundField DataField="语文" HeaderText="语文" />
                  <asp:BoundField DataField="数学" HeaderText="数学" />
                  <asp:BoundField DataField="英语" HeaderText="英语" />
                  <asp:BoundField DataField="计算机" HeaderText="计算机" />
                </Columns>
              </asp:GridView>
              <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="得到选择的行值" />
            </td>
            <td align="right">
              <asp:GridView ID="GridView2" runat="server" Font-Size="12px" BackColor="#FFFFFF"
                GridLines="Both" CellPadding="4" DataKeyNames="序号" AutoGenerateColumns="false">
                <HeaderStyle BackColor="#EDEDED" Height="26px" />
                <Columns>
                  <asp:TemplateField>
                    <HeaderTemplate>
                      <input id="Checkbox2" type="checkbox" onclick="CheckAll(this)" runat="server" /><label>全选</label>
                    </HeaderTemplate>
                    <ItemTemplate>
                      <asp:CheckBox ID="ItemCheckBox" runat="server" />
                    </ItemTemplate>
                  </asp:TemplateField>
                  <asp:BoundField DataField="学生姓名" HeaderText="学生姓名" />
                  <asp:BoundField DataField="语文" HeaderText="语文" />
                  <asp:BoundField DataField="数学" HeaderText="数学" />
                  <asp:BoundField DataField="英语" HeaderText="英语" />
                  <asp:BoundField DataField="计算机" HeaderText="计算机" />
                </Columns>
              </asp:GridView>
              <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="得到选择的行值" />
            </td>
          </tr>
          <tr valign="top">
            <td>
              <asp:Literal ID="Ret1" runat="server"></asp:Literal>
            </td>
            <td align="right">
              <asp:Literal ID="Ret2" runat="server"></asp:Literal>
            </td>
          </tr>
        </table>
      </form>
    </body>
    </html>
      

  4.   

    javascript可以对服务器控件操作.function CheckAll()
    {
        var CheckBoxList = document.getElementById('你的checkboxlist的id');
    //设置RepeatLayout="Table",默认就是table 
        if(CheckBoxList.tagName == "TABLE")
        {
            for(i=0;i<CheckBoxList.rows.length;i++)
            {    
                for(j=0;j<CheckBoxList.rows[i].cells.length;j++)
                {
                    if(CheckBoxList.rows[i].cells[j].childNodes[0])
                    {
                        CheckBoxList.rows[i].cells[j].childNodes[0].checked=true;
                    }
                }
                        
            }               
        }
    }
      

  5.   


    //设置RepeatLayout="Flow"
        if(CheckBoxList.tagName == "Flow")
        {
            for(i=0;i<CheckBoxList.childNodes.length;i++)
            {    
                if(CheckBoxList.childNodes[i].tagName == "INPUT")
                {
                    CheckBoxList.childNodes[i].checked=true;
                }                                         
            }               
        }
      

  6.   

    全选: 
    js: 
    var elems = document.getElementById("<%= Yourgridview.ClientID %>").getElementsByTagName("input");
    for(var i=0;i<elems.length;i++){
      if(elems[i].type=="checkbox")elems[i].checked = true;
      

  7.   

    象这样全选修改控件准状态的,对服务端是有效而且是合法的,但如果尝试修改控件属性什么的就是不合法的,默认是会运行出错.
    全选代码象下面
        function checkAll(){
            var chks=document.getElementById("<%=CheckBoxList1.ClientID %>").getElementsByTagName("input");
            for(var i=0;i<chks.length;++i){
                chks[i].checked=true;
            }
        }
        </script>
      

  8.   

    靠,一个比一个复杂。
    我正好做了这个功能,我的代码:
    前台:<input name="cbOrder" type="checkbox" />
    //点击全选checkbox时,该列的checkbox全为选中状态
        function selectAll()
        {
            var all = document.getElementById("cbOrderAll");
            var str=document.getElementsByName("cbOrder");
            
            if(all.checked)
            {
                for(var i=0; i<str.length; i++) str[i].checked = true;     
            }
            else
            {
                for(var i=0; i<str.length; i++) str[i].checked = false;
            }    
            
         }后台:
     string RecordID = Request.Form["cbOrder"].ToString(); //获得所有记录ID
                      
      

  9.   

    后台RecordID值为:前台checkbox列单选时,为“值1”;前台checkbox列多选时,为"值1,值2,值3"(逗号分隔)
      

  10.   

    结合上面的,你要在form里设置ACTION=a.aspx就可以在a.aspx里获取到页面里的HTML控件了
      

  11.   

    问题已解决...     <script type="text/javascript">
            function checkAll(oCheckbox)
            {
            var chks=document.getElementById("<%=CheckBoxList1.ClientID %>").getElementsByTagName("input");
            for(var i=0;i<chks.length;++i)
            {
                chks[i].checked = oCheckbox.checked;
            }
            }
        </script>
    <input id="Checkbox1" type="checkbox" onclick="checkAll(this)" runat="server" /><label>全选</label>控件是一个checkbox全选按钮
    和一个checkboxlist被全选项
      

  12.   

    1、首先,服务器控件只是一种服务器端的概念对象,在生成HTML并发送给浏览器解释时还是普通HTML控件的形式,关于这点请查看下ASPX页的源代码就明白了。所以JavaScript也能控制服务器控件,因为对浏览器来说他们是一样的;
    2、可以这样进行修改: <script type="text/javascript"> 
      function   qxuan() 
      { 
        var kj=document.getElementsByTagName("input");
        for(i=0;i <kj.length;i++) 
        { 
           if(kj[i].type == "checkbox")
           {
               kj[i].checked = true;
           } 
        } 
      }     
      

  13.   


    请问一下RecordID值在后台有什么作用呢???