DataGrid中有一列模板列,里面是一个CheckedBox,比如选中第一页中某些记录的CheckedBox,翻到第二页,再回来发现第一页的全部都变成未选中,怎样才能保持原来选择的结果?

解决方案 »

  1.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=F43AF9A5-2C2E-4AA6-E976-21E9569F5A8A
      

  2.   

    谢谢,这个问题解决了,可是还有一个问题:点击DataGrid外的一个CheckBox(全选),怎样使得DataGrid中的所有CheckBox全部被选中?
      

  3.   

    在DataGrid中操作CheckBox控件http://nhlinkin.cnblogs.com/articles/113590.html
      

  4.   

    有2种方法
    1。。  
    在属性生成器里的页眉中写入
    <input type=checkbox id=CheckAll onclick='javascript:SelAll()' title='全选/全取消'>2
    在Button事件中写
    System.Web.UI.WebControls.CheckBox chkExport;
    //如果要全选
    if(cmdSelectAll.Text == "全选")
    {
    //循环设置DataGrid控件中的项
    foreach(DataGridItem oDataGridItem in dgCheckBox.Items)
    {
    //建立模板列中CheckBox控件的引用
    chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
    //选中
    chkExport.Checked =true;
    } cmdSelectAll.Text = "全消";
    }
    else
    {
    foreach(DataGridItem oDataGridItem in dgCheckBox.Items)
    {
    //建立模板列中CheckBox控件的引用
    chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
    //取消
    chkExport.Checked = false;
    }
    cmdSelectAll.Text = "全选";
    }
      

  5.   

    <ItemTemplate >
    <asp:CheckBox ID ="chbCheckAll" runat ="server" onclick="SureDisable(this.checked, this.id);"/>
    </ItemTemplate>///////////////////////////////////////////////////////////////////////////////
    function SureDisable(chkVal, idVal)
        {
           if( chkVal==false )
           {
             var header = document.getElementById('gvProjectView_ctl01_chbCheckHeader');
             header.checked = header.checked==true?false:header.checked;
           }
           var frm = document.forms[0];
           var checkedCount = 0;
           var RowCount = 0;
           var o1 = document.getElementById("lbtnTaskDetail");
           var o2 = document.getElementById("lbtnGanttChart");
           
           for (i=0; i<frm.length; i++) 
           {
                var elem = frm.elements[i];
                if (elem.id.indexOf ('chbCheckAll') != -1) 
                {
                    if( frm.elements[i].checked == true )
                        checkedCount=checkedCount+1;
                }
                if( elem.id.indexOf ('chbCheckAll') != -1 || elem.id.indexOf ('chbCheckHeader') != -1 )
                {
                    RowCount++;
                }
                
           }
           var result = RowCount-checkedCount;
           if( result == 1 )
           {
             var header = document.getElementById('gvProjectView_ctl01_chbCheckHeader');
             header.checked = header.checked==false?true:header.checked;
           }
           if( checkedCount != 0 )
           {
                o1.disabled = false;
                o2.disabled = false;
                return true;
           }
           else
           {
              o1.disabled = true;
              o2.disabled = true;
              return false;
           }
        }