checkbox使用客户端控件,且给repeater里边的checkbox添加ruanat=server属性
表头中的chkTotal的属性一定不要加此属性。。。。
然后 全选的javascript代码
function CheckAll()
{
var e=document.aspnetForm.elements;
var o;
for(var i=0;i<e.length;i++)
{
o = e;
if(o.type=="checkbox"&o.id!="chkTotal")
{
o.checked = document.getElementById("chkTotal").checked;
} } }
之后判定是否有选择项,如果没有提示!
function SelectOne()
{
var e=document.aspnetForm.elements;
var o;
var anyonechecked = false;
for(var i=0;i<e.length;i++)
{
o = e;
if(o.type=="checkbox"& o.checked==true &o.id!="chkTotal")
{
anyonechecked = true;
break;
}
}
if(!anyonechecked)
{
alert("必须选择一个项目!");
} }
在 删除的按钮加上客户端控件事件
后台的删除事件。。。注意 绑定数据时候将主键(要删除时候的唯一索引作为隐藏项放在reperter中)
protected void btnDelete_Click(object sender, EventArgs e)
{
for (int i = 0; i < rptMessList.Items.Count; i++)
{
if (((HtmlInputCheckBox)this.rptMessList.Items.FindControl("chkOne")).Checked == true)
{
int k = Ucar.Common.ConvertHelper.GetInteger((rptMessList.Items.FindControl("hfid") as HiddenField).Value);
BOMessageDS BOMessmodel = BOMessage.GetModel(k);
if (BOMessmodel != null)
{
BOMessmodel.IsPublisherActive = 0;
BOMessage.Update(BOMessmodel);
Ucar.Common.ScriptHelper.ShowAlertScript(this.Page, "删除成功!");
}
}
}
我后边的删除是逻辑删除,置换状态,大家可以直接删除就可以 谢谢欣赏!
DataBind();
}
<script language="javascript">
<!--
function CA(frm)
{
var trk=0;
for (var i=0;i<frm.elements.length;i++)
{
var e=frm.elements;
if ((e.name != 'allbox') && (e.type=='checkbox') && (e.name != '不想被选中的checkbox的名称'))
{
trk++;
e.checked=frm.allbox.checked;
frm.del.disabled = frm.allbox.checked?false:true;//全选对删除按钮的disabled属性的影响
}
}
}
function CCA(frm,CB)
{
var TB=TO=0;
for (var i=0;i<frm.elements.length;i++)
{
var e=frm.elements;
if ((e.name != 'allbox') && (e.type=='checkbox') && (e.name != '不想被选中的checkbox的名称'))
{
TB++;
if (e.checked)
TO++;
}
}
frm.allbox.checked=(TO==TB)?true:false;
if (0==TO)//全部未选中和选中一些时对删除按钮的disabled属性的影响
{
frm.del.disabled = true;
}
else
{
frm.del.disabled = false;
}
}
-->
</script>
调用方法:
全选的名称定为allbox,onclick事件执行CA(this.form);
选择项的checbox的onclick事件执行CCA(this.form,this);