代码如下:
<asp:DataList ID=dlGroup runat=server onitemdatabound="dlGroup_ItemDataBound">
     <ItemTemplate>
          <asp:CheckBox ID=ckGroup runat=server   Text='<%# DataBinder.Eval(Container.DataItem,"GroupName") %>' onclick= JS方法/>
          <asp:HiddenField ID=hidGroupTimePK runat=server Value='<%# DataBinder.Eval(Container.DataItem,"TimePK") %>' />
          <asp:CheckBoxList ID=ckPsn runat=server RepeatColumns=8></asp:CheckBoxList>
      </ItemTemplate>
</asp:DataList>我的想法是通过JS 选择CheckBox时,和它一级的 CheckBoxList全选择,否则取消。

解决方案 »

  1.   

    你必须在绑定事件里面。通过FindControl("ckGroup ")设置客户端的onlick
      

  2.   


      protected void dlGroup_ItemDataBound(object sender, DataListItemEventArgs e)
      {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        {
          CheckBox ckGroup = e.Item.FindControl("ckGroup") as CheckBox;
          CheckBoxList ckPsn = e.Item.FindControl("ckPsn") as CheckBoxList;
          ckGroup.Attributes.Add("onclick", "SetNext(this,'" + ckPsn.ClientID + "')");
        }
      }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title></title>
      <script type="text/javascript">
        function SetNext(o,xid) {
          inputs = document.getElementById(xid).getElementsByTagName("input");
          for (i = 0; i < inputs.length; i++) {
            inputs[i].checked = o.checked;
          }
        }
      </script>
    </head>