日期:2014-05-16  浏览次数:20394 次

动态绑定的asp.checkboxlist control client side 判断是否selected
一个 checkbox,text = all and autopostback= true. 一个checkboxlist(动态绑定),autopostback= false。
需求
1.check checkbox, 选中所有checkboxlist 的item. 这个比较好实现.
  protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
  {
  foreach (ListItem item in CheckBoxList1.Items)
  item.Selected = (sender as CheckBox).Checked;
  }

2.如果checkbox和所有checkboxlist item是选中状态,uncheck一个 checkgoxlist item,checkbox 的选中状态改变成unchecked.

 因为checkboxlist autopostback =false, 我想是应该用javascript实现,如何实现呢?

------解决方案--------------------
居然是半夜发的。。。

给ListItem添加客户端(js)的点击(选中)事件,,,然后再js中找到那个text=all的Checkbox,控制它的选中状态。。。

其实这种checkbox用name来区别比较好控制一点。。。
------解决方案--------------------
HTML code
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.8.0.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#chkAll").click(function () {
                $("#chkList input[type='checkbox']").prop("checked", $(this).prop("checked"));
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:CheckBox ID="chkAll" Text="All" runat="server" />
        <asp:CheckBoxList ID="chkList" runat="server">
            <asp:ListItem Text="text1" />
            <asp:ListItem Text="text2" />
        </asp:CheckBoxList>
    </div>
    </form>
</body>
</html>