我正在使用Jquery ajax来调用webmethod,这个webmethod访问我的数据库并返回true或false值。我希望根据返回的布尔值来检查复选框。
以下是服务器端代码。
[WebMethod]
public static bool FillData(string emailAddr)
{
ConnectionUtility ConnectionObj = new ConnectionUtility();
//Fill modal with correct data from database
SqlConnection ConState = ConnectionObj.GetConnectionState();
SqlCommand cmd = new SqlCommand("Select * from tblEmployee where Email='" + emailAddr + "'", ConState);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
string subscriptionUser = dt.Rows[0]["IsSubscriptionUser"].ToString();
return Convert.ToBoolean(subscriptionUser);
}
客户机侧:
function editdata(id, firstname, lastname, email, phonenumber, company, role, empid) {
document.getElementById("LblHeadderText").innerHTML = "Update";
<%-- $('#<%=TxtEmail.ClientID%>').attr('readonly', true);--%> //Commented on 12 Dec 2016 to allow user to update username/email
jQuery("#<%=TxtId.ClientID%>").val(id);
jQuery("#<%=TxtFirstName.ClientID%>").val(firstname);
jQuery("#<%=TxtLastName.ClientID%>").val(lastname);
jQuery("#<%=TxtEmail.ClientID%>").val(email);
jQuery("#<%=TxtPhoneNumber.ClientID%>").val(phonenumber);
jQuery("#<%=DdlAssignRole.ClientID%>").val(role);
jQuery("#<%=TxtOldAssignedRole.ClientID%>").val(role);
jQuery("#<%=DpdEmployee.ClientID%>").val(empid);
jQuery("#<%=btnSubmit.ClientID%>").hide();
jQuery("#<%=btnUpdate.ClientID%>").show();
$('[Id*=HfOldEmail]').val(email);
document.getElementById('<%=btnUpdate.ClientID%>').disabled = false;
$.ajax({
type: "GET",
url: "UserList.aspx/FillData",
data: JSON.stringify({ emailAddr: email }),
success: checkCheckBox,
error: function (r) {
alert(r.responseText);
},
failure: function (r) {
alert(r.responseText);
}
});
}
function checkCheckBox(checked)
{
$("#<%=chkbxSubscriptionUser%>").prop("checked", checked);
}
我调试了服务器端代码,它确实按预期工作。它正确返回true或false。我已经尝试了我能想到的每一种选择,我甚至尝试过使用会话变量。
我确信这是一个简单的解决方案,但我对Jquery缺乏经验,而我只是在最初签约的应用程序中实现了一项功能。
非常感谢帮助。
答案 0 :(得分:0)
在Application_Start
下面的评论
//RouteConfig.RegisterRoutes(RouteTable.Routes);
确保EnablePageMethods
ScriptManager
<asp:ScriptManager runat="server" EnablePageMethods="true">
更新checkCheckBox
功能如下
function checkCheckBox(checked)
{
//$("#<%=chkbxSubscriptionUser%>").prop("checked", checked);
$("#<%=chkbxSubscriptionUser.ClientID%>").prop('checked', checked);
}
更新AJAX通话
$.ajax({
type: "POST",
url: "UserList.aspx/FillData",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ emailAddr: email }),
dataType: "json",
success: function (r) {
checkCheckBox(r.d);
}
, error: function (r) {
alert(r.responseText);
},
failure: function (r) {
alert(r.responseText);
}
});