以下是我对服务器端方法调用 PageMethod 的实现。它当前正在生成此错误消息“未捕获的 ReferenceError:PageMethod 未定义”。我可以在 Chrome Javascript 控制台中看到这个错误。我的研究表明,PageMethods 最常见的问题是忘记将 EnablePageMethods 设置为“true”(这样做了)和需要重建应用程序(也这样做了)。我现在很困惑。谁能发现我做错了什么?
脚本管理器:
<telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true">
ASPX:
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
function confirmCallBackFn(arg) {
if (arg == true) {
var firstDataItem = $find("<%=RadGrid1.ClientID %>").get_masterTableView().get_dataItems()[0];
var PackageID = firstDataItem.getDataKeyValue("PackageID");
PageMethod.RemovePackagePageMethod(PackageID);
}
else {
}
}
</script>
</telerik:RadCodeBlock>
代码隐藏:
[WebMethod()]
public static void RemovePackagePageMethod(int PackageID)
{
Inventory inv = new Inventory();
inv.RemovePackage(PackageID);
}
public void RemovePackage(int PackageID)
{
SBMData2.SBMDataContext db = new SBMData2.SBMDataContext();
var boxes = from p in db.Packages
where p.PackageID == PackageID
select p;
foreach (var box in boxes)
{
db.Packages.DeleteOnSubmit(box);
}
try
{
db.SubmitChanges();
RadGrid1.Rebind();
}
catch (Exception ex)
{
RadWindowManager1.RadAlert("System error deleting package", 200, 200, "exception", null);
}
}
d
最佳答案
尝试
PageMethods.RemovePackagePageMethod(PackageID);
(使用 s - PageMethods 而不是 PageMethod)
关于c# - PageMethod 未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6864180/