我的datagrid有一模板列放了一个checkbox,其它列为邦定列。
现在我在这个checkbox的页眉也放了个checkbox,目的是实现当上面的checkbox选中时,正面的checkbox全部勾上,同理,当上面的checkbox不选时,下面的全部取消。
这里的checkbox在选与不选过程中不能提交(刷新页面),请问各位该怎办?

解决方案 »

  1.   

    在页眉的checkbox属性中添加这个事件onclick="CheckAllCus()",不过页眉中的checkbox要用html服务器控件.然后在用javascript实现,如下:
    <script language="javascript">
    function CheckAllCus()
    {     
        for (var k=0;k<document.Form1.elements.length;k++)
            {
       var e = document.Form1.elements[k];
       if (e.id!= 'checkAccept')
     
        e.checked = document.Form1.checkAccept.checked;
    }
    }
      

  2.   

    模板列如下:<asp:TemplateColumn>
        <HeaderTemplate>
             <INPUT language="javascript" id="chkAll" onclick="CheckAll(this);" type="checkbox" name="chkAll">&nbsp;选择
        </HeaderTemplate>
        <ItemTemplate>
             <INPUT language="javascript" id="checkbox<%#Container.ItemIndex%>" type="checkbox" value="<%#DataBinder.Eval(Container.DataItem,"字段名字")%>" name="VocationId">
        </ItemTemplate>
    </asp:TemplateColumn>这里可以
    CheckAll函数如下,记得把函数中的frmList改成你的Form的名字:function CheckAll(CheckBox)
    {
    var i;
    var str = new String();
    for ( i = 0; i < frmList.length; i++ )
    {
    str = frmList.item(i).id;
    if ( str.substr(0,8) == "checkbox" )
    {
    if (frmList.item(i).disabled != true)
    {
    frmList.item(i).checked = CheckBox.checked;
    if (CheckBox.checked == true )
    {
    //document.all.item("chk" + str.substr(8,9)).className = "";
    //document.all.item("chk" + str.substr(8,9)).bgColor ="#ffdfbd";
    }
    else 
    {
    //changeColor(frmList.item(i));
    }
    }
    }
    }
    }
      

  3.   

    <script language="javascript">
    //B100547 chen.p may select or unselect all checkbox
    function SelectAll() 
    {
    var arrInputControls;
    arrInputControls = document.Form1.all;
    for(i=0;i<arrInputControls.length;i++)
    {
    if((arrInputControls(i).tagName.toLowerCase() == "input") && (arrInputControls(i).type) && (arrInputControls(i).type.toLowerCase()  == "checkbox") )
    {
    arrInputControls(i).checked = document.Form1.chkCheckAll.checked;
    }
    }
    }
    </script>
      

  4.   

    在这里写JS也可以滴private void DataGrid1_PreRender(object sender, System.EventArgs e)
    {}
      

  5.   

    <%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="BS_Demo.WebForm2" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm2</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    <script language="javascript">
        function SelectAll(thisObject)
        {
    var tmpTable=thisObject.parentElement.parentElement.parentElement;
    var rowsCount=tmpTable.rows.length;
    var buttonText=thisObject.value;
    var selected=true;
    if(buttonText == "本页全选"){thisObject.value="清除选择";}else{thisObject.value="本页全选";selected=false}
    var i;
    for(i=1;i<rowsCount;i++)
    {
    var tmpCell=tmpTable.rows[i].cells[0];
    if(tmpCell.childNodes.length>0)
    {
        var objCheck = tmpTable.rows[i].cells[0].childNodes[0];
        if(objCheck.id.indexOf("ChkSelect")>-1)
        {
        objCheck.checked=selected;
        //SelectOne(objCheck);
    }
    }
    }
        }
    </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <asp:DataGrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 264px; POSITION: absolute; TOP: 192px"
    runat="server">
    <Columns>
    <asp:TemplateColumn>
    <HeaderTemplate>
    <INPUT id="btnSelect" style="FONT-WEIGHT: bold; WIDTH: 56px; CURSOR: hand; COLOR: blue; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; HEIGHT: 20px; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline; BORDER-BOTTOM-STYLE: none"
    onclick="SelectAll(this);" type="button" value="本页全选" name="btnSelect">
    </HeaderTemplate>
    <ItemTemplate>
    <INPUT id="ChkSelect" type="checkbox" name="ChkSelect" runat="server" >
    </asp:textbox>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>
    </form>
    </body>
    </HTML>