如何在repeater中找到checkbox并实现全选删除

时间:2021-10-12 16:12:52

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);