如何在jquery中设置在转发器中选中/取消选中复选框

时间:2016-10-12 17:18:34

标签: javascript jquery html asp.net checkbox

我使用jQuery绑定了转发器:

<table id="tblvh">
    <tr>
        <th>id</th>
        <th>No</th>
        <th>Time</th>
        <th>Action</th>
    </tr>       

    <asp:Repeater ID="gvd" runat="server">
        <ItemTemplate>        
            <tr>
                <td>
                    <asp:Label ID="Label1" CssClass="id" Text='<%# Eval("id") %>' runat="server" />
                </td>
                <td>
                    <asp:Label ID="Label2" CssClass="no" Text='<%# Eval("no") %>' runat="server" />
                </td>
                <td>
                    <asp:Label ID="Label3" CssClass="time" Text='<%# Eval("time") %>' runat="server" />
                </td>
                <td>
                    <asp:CheckBox runat="server" CssClass="status" ID="chk" Checked='<%# (Eval("status")).ToString() == "1" ? true : false %>' />
                </td>
            </tr>
        </ItemTemplate>
    </asp:Repeater>
</table>

现在对于上面的转发器,我使用jquery绑定数据:

<script type="text/javascript">

    function BindRepeater() {
        $("[id*=tblvh]").find("tr:gt(1)").remove();
        $.ajax({
            type: "POST",
            url: "AjaxTest.aspx/GetCustomers",
            data: '{}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccess,
            failure: function (response) {
                alert(response.d);
            },
            error: function (response) {
                alert(response.d);
            }
        });
    }

    function OnSuccess(response) {
        $("[id*=tblvh]").attr("border", "1");
        var xmlDoc = $.parseXML(response.d);
        var xml = $(xmlDoc);
        var customers = xml.find("Table");
        var row = $("[id*=tblvh] tr:last-child").clone(false);
        $("[id*=tblvh] tr:last-child").remove();
        $.each(customers, function () {
            var customer = $(this);
            $(".id", row).html($(this).find("id").text());
            $(".no", row).html($(this).find("no").text());
            $(".time", row).html($(this).find("time").text());
            $(".status", row).html($(this).find("status").prop('checked', true));
            $("[id*=tblvh]").append(row);
            row = $("[id*=tblvh] tr:last-child").clone(true);
        });
    }
</script>

现在我可以成功地将转发器与所有标签捆绑在一起。 但我无法选中/取消选中复选框及其值。

status中我得到0和1的值。如果0则取消选中,然后选中1然后检查。

但不是复选框我得到的值为0和1。

see this image i am getting value 1 and 0 instead of check box checked/unchecked

见上图。我得到1和0值而不是复选框选中/取消选中。

如果status值为1,我如何选中复选框,如果status值为0,我如何取消选中?

2 个答案:

答案 0 :(得分:0)

您可以设置.status复选框的状态,如下所示。

$(".status", row).prop('checked', $(this).find("status").text() == 1);

答案 1 :(得分:0)

尝试使用此代码

$(".status", row).html($(this).closest('tr').find('[type=checkbox]').prop('checked', true););