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 是否被选中,选中了就进行操作。
不过这样有个问题,如果一个页面几十上百个被选中,我现在要操作数据库,岂不是碰到一个就要去连接数据库操作一次。。。谁有好的办法,请留言