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