该程序来源于网络,只是对某些地方做了些修改,粗略测试已通过,但翻页时似乎还要加入全选复选框的初始化。在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); }