【发布时间】:2014-09-25 02:56:04
【问题描述】:
我有这个页面,用户需要在网格视图中检查事情。他们不想点击编辑和保存等等。因此,使用来自这里和其他地方的信息,我想出了以下内容。在gridview中,我有这个复选框(如果记录的DataKeyName是UserID,也是表中要更新的行):
<ItemTemplate>
<asp:CheckBox ID="cbIsActive" runat="server" Enabled="true" Checked='<%# Bind("IsActive") %>' CssClass="cbActive" data-id='<%# Eval("UserId")%>' />
</ItemTemplate>
在复选框更改时执行的 jQuery 如下所示:
//Called from gridview checkbox control.
$(".cbActive").change(function () {
var userid = $(this).data("id");
//checkbox is nested in a span, so we have to dig down a litte.
var ctrl = $(this).children(":first");
var isChecked = (document.getElementById(ctrl[0].id).checked);
$.ajax({
contentType: 'application/json; charset=utf-8',
url: 'Services/WebService.asmx/UpdateStatus',
data: JSON.stringify({ strUserID: userid, strStatus: isChecked }),
dataType: 'json',
type: 'POST',
error: function (err) {
//blah blah
},
success: function (data) {
//blah blah
}
});
});
一切正常。唯一困扰我的事情(是的,我知道这有点微不足道)是 jQuery 代码中间的 document.getElementById。我似乎找不到更适合 jQuery 的语法。有其他选择吗?
【问题讨论】:
标签: jquery asp.net ajax json gridview