repeater 嵌套repeater 中的checkbox 全选问题

时间:2022-06-01 18:20:53

<table>
<asp:repeater >
<ItemTemplate>
<tr id="RecRow" class="TableContent">
<td><input type="checkbox" id="cb" onclick="OnCheckBoxClick(this)" /></td>
<td>
<%# DataBinder.Eval(Container.DataItem,"F_ID") %>
<input type="hidden" id="hProdID" value="<%# DataBinder.Eval(Container.DataItem,"F_ID") %>"></td>
</tr>
<asp:Repeater ID="rptQtyList" Runat="server">
<ItemTemplate>
<tr id="RecRowM" class="TableContent">
<td><input type="checkbox" id="cbM"/></td>
<td><input type="text" id="txtMQty" style="WIDTH: 60px"></td>
    </tr>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:repeater>
</table> 



代码如上,现在我想实现选中cb其分类下的cbmM也都选中,都是repeater下动态绑定的,所以不知道该怎么控制,求解,谢谢!

5 个解决方案

#1


把生成的网页源码贴出来

#2


通过js进行操作,给每一个分类弄上一个统一特殊的属性,用这个属性进行分类。

还有你写的代码有问题
<ItemTemplate>
                    <tr id="RecRowM" class="TableContent">                        
                        <td><input type="checkbox" id="cbM"/></td>
                        <td><input type="text" id="txtMQty" style="WIDTH: 60px"></td>        
                    </tr>
                </ItemTemplate>

这里面是循环的。

你的id已经写死,是不是有问题啊。这样生成好多id一样的标签,html有语法错误

#3


js全选 

    function CheckAll() {
        var check = document.getElementById("Checkbox3");
        var objLen = form1.length;

        for (var iCount = 0; iCount < objLen; iCount++) {
            if (form1.elements[iCount].type == "checkbox") {
                if ((form1.elements[iCount].name.indexOf("CheckBox1") > -1)) {
                    if (check.checked == true) {
                        form1.elements[iCount].checked = true;
                    }
                    else {
                        form1.elements[iCount].checked = false;
                    }
                }
            }
        }
    }
    function CheckForm() {
        var m = 0;
        var t = document.getElementsByTagName("input");    //获取页面中类型为input的元素个数

        for (var i = 0; i < t.length; i++) {

            //判断是不是CheckBox控件,并通过名称indexOf("cbChecked") != -1方法来判断是不是GridView中的CheckBox,还判断了是不处理选中状态
            if (t[i].type == "checkbox" && t[i].name.indexOf("CheckBox1") != -1 && t[i].checked == true) {
                m++;
            }
        }
        if (m == 0) {
            alert("请选择想要处理的项!");
            return false;
        }
        else {
            return confirm('您确定要删除吗,此操作不能恢复?');
        }
    }

#4


   <input name="checkbox" type="checkbox" id="Checkbox3" onclick="CheckAll()"/>
                        <span> 全选/取消</span>

#5


js:
function checkAll() {
            jQuery('.checkBox').attr("checked", document.getElementById("Checkbox1").checked);
        }
html:
 全选<input id="Checkbox1" type="checkbox" onclick="checkAll()"/>
 <input type="checkbox" class="checkBox">

#1


把生成的网页源码贴出来

#2


通过js进行操作,给每一个分类弄上一个统一特殊的属性,用这个属性进行分类。

还有你写的代码有问题
<ItemTemplate>
                    <tr id="RecRowM" class="TableContent">                        
                        <td><input type="checkbox" id="cbM"/></td>
                        <td><input type="text" id="txtMQty" style="WIDTH: 60px"></td>        
                    </tr>
                </ItemTemplate>

这里面是循环的。

你的id已经写死,是不是有问题啊。这样生成好多id一样的标签,html有语法错误

#3


js全选 

    function CheckAll() {
        var check = document.getElementById("Checkbox3");
        var objLen = form1.length;

        for (var iCount = 0; iCount < objLen; iCount++) {
            if (form1.elements[iCount].type == "checkbox") {
                if ((form1.elements[iCount].name.indexOf("CheckBox1") > -1)) {
                    if (check.checked == true) {
                        form1.elements[iCount].checked = true;
                    }
                    else {
                        form1.elements[iCount].checked = false;
                    }
                }
            }
        }
    }
    function CheckForm() {
        var m = 0;
        var t = document.getElementsByTagName("input");    //获取页面中类型为input的元素个数

        for (var i = 0; i < t.length; i++) {

            //判断是不是CheckBox控件,并通过名称indexOf("cbChecked") != -1方法来判断是不是GridView中的CheckBox,还判断了是不处理选中状态
            if (t[i].type == "checkbox" && t[i].name.indexOf("CheckBox1") != -1 && t[i].checked == true) {
                m++;
            }
        }
        if (m == 0) {
            alert("请选择想要处理的项!");
            return false;
        }
        else {
            return confirm('您确定要删除吗,此操作不能恢复?');
        }
    }

#4


   <input name="checkbox" type="checkbox" id="Checkbox3" onclick="CheckAll()"/>
                        <span> 全选/取消</span>

#5


js:
function checkAll() {
            jQuery('.checkBox').attr("checked", document.getElementById("Checkbox1").checked);
        }
html:
 全选<input id="Checkbox1" type="checkbox" onclick="checkAll()"/>
 <input type="checkbox" class="checkBox">