我使用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。
见上图。我得到1和0值而不是复选框选中/取消选中。
如果status
值为1,我如何选中复选框,如果status
值为0,我如何取消选中?
答案 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););