我已经阅读了类似问题的几个答案,但没有一个能回答我的问题。我已经尝试了所有我能想到的东西。这是我的代码的样子:
<asp:ScriptManager ID="ScriptMgr" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<asp:TextBox ID="TextBox" runat="server" onblur="textboxOnBlur()"></asp:TextBox>
<script>
function onSuccess() {
alert("success");
}
function onFailure() {
alert("failure");
}
function textboxOnBlur() {
PageMethods.CheckDBForCodes(onSuccess, onFailure);
//alert("test");
}
</script>
这里应该由PageMethods
调用服务器端函数:
<System.Web.Services.WebMethod()>
Protected Shared Sub CheckDBForCodes()
`search DB for codes
End Sub
出于某种原因,我仍然收到错误消息,指出PageMethods未定义。如您所见,当您单击文本框时,将调用textboxOnBlur
函数。我错过了什么吗?
答案 0 :(得分:0)
PageMethods
对象未定义的原因是因为服务器端功能的访问修饰符设置为Protected
。我把它改为Public
,一切都很好。