Js实现repeater全选功能

本文介绍了一个ASP.NET项目中实现全选复选框功能的方法,包括使用Repeater控件结合JavaScript来同步全选状态与子复选框状态,并展示了如何在服务器端获取被选中的项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该程序来源于网络,只是对某些地方做了些修改,粗略测试已通过,但翻页时似乎还要加入全选复选框的初始化。在gridview和datalist也应该成立,但未测试。

.aspx页代码:

<%--  全选复选框  --%>
<asp:CheckBox ID="CB_AllSelect" runat="server" onclick='SelectAll(this,"CheckBox1","Repeater1")' Text="选择所有" />
<%--  repeater每项复选框  --%>
<asp:CheckBox ID="CheckBox1" runat="server" />

js代码:

<script language="javascript" type="text/javascript">
    
function SelectAll(parentChk,ChildId,bigControlID)   
    
{   
        
var oElements = document.getElementsByTagName("INPUT");   
        
var bIsChecked = parentChk.checked;   

       
for(i=0; i<oElements.length;i++)   
        
{   
            
if( IsCheckBox(oElements[i]) &&    
                IsMatch(oElements[i].id, ChildId, bigControlID))   
            
{   
                oElements[i].checked 
= bIsChecked;   
            }
           
        }
      
     }
   
      
    
function IsMatch(id, ChildId, controlID)   
    
{   
        
var sPattern ='^'+controlID+'_+.*'+ChildId+'$'
        
var oRegExp = new RegExp(sPattern);   
        
if(oRegExp.exec(id))    
            
return true;   
        
else    
            
return false;   
    }
   
      
    
function IsCheckBox(chk)   
    
{   
        
if(chk.type == 'checkbox'return true;   
        
else return false;   
    }
   
</script>

 

.aspx.cs

protected void Button1_Click(object sender, EventArgs e)
    
{
        System.Text.StringBuilder temp 
= new System.Text.StringBuilder();
        temp.Append(
"<br>choose: ");
        
foreach (RepeaterItem ri in Repeater1.Items)
        
{
            CheckBox chb
=(CheckBox)ri.FindControl( "CheckBox1"); 
            
if (chb.Checked)
            
{
                Label lblValue 
= (Label)ri.FindControl("Label2");
                temp.Append(lblValue.Text 
+ "  ");
            }

        }

        Response.Write(temp);
 }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值