datalist 全选

JS:
 
function AddRemoveValues(oChk)    //选择或反选单项时调用的function
    {
         if(oChk.checked)
         {
             document.getElementById('TextBox1').value +=oChk.value + "," ;
             var allSelect = true;
             for(var   i=0;i<form1.elements.length;i++)   
             {   
                 if(form1.elements[i].type=="checkbox")   
                 {
                     if(form1.elements[i].checked == false && form1.elements[i].id != "chk_SelectAll")
                     {
                         allSelect = false;
                     }
                 }
             }
             
             if(allSelect)
             {
                 document.getElementById('chk_SelectAll').checked = true;
             }
         }
         else
         {
             document.getElementById('TextBox1').value = document.getElementById('TextBox1').value.replace(oChk.value+",","");
             document.getElementById('chk_SelectAll').checked = false;
         }
    }

function selectAll(chkAll)   //全选或反选时调用的function
    {
        if(chkAll.checked)
        {
            var txt = document.getElementById('TextBox1');
            for(var   i=0;i<form1.elements.length;i++)   
            {   
                if(form1.elements[i].type=="checkbox")   
                {
                    form1.elements[i].checked = true;
                    if(form1.elements[i].value != "on")
                    {
                        txt.value += form1.elements[i].value + ',';
                    }
                }
            }
        }
        else
        {
            for(var i=0;i<form1.elements.length;i++)   
            {   
                if(form1.elements[i].type=="checkbox")   
                {
                    form1.elements[i].checked = false;
                }
            }
            document.getElementById('TextBox1').value = '';
        }
    }



    aspx:

datalist 的ItemTemplate项
<input type="checkbox" id="chkSelect" runat="server" checked="false" onclick="AddRemoveValues(this)"
   
footerTemplate项

<asp:CheckBox id="chk_SelectAll" Text="全选" runat="server" checked="false" onclick="javascript:return selectAll(this)" />


CS:
            string s = "";
            for (int i = 0; i < datalist1.Items.Count; i++)
            {
                HtmlInputCheckBox cbox = (HtmlInputCheckBox)datalist1.Items[i].FindControl("chkSelect");
                if (cbox.Checked == true)
                {
                    s = cbox.Value.ToString();
                    member.updatehouse("", userID, s);
                }
            }

用FindControl查找控件chkselect ,再判断chkselect 是否被选中,选中了就进行操作。
不过这样有个问题,如果一个页面几十上百个被选中,我现在要操作数据库,岂不是碰到一个就要去连接数据库操作一次。。。谁有好的办法,请留言
原文地址:https://www.cnblogs.com/jackrebel/p/1085089.html