我有一个ScriptManager,它被添加到我的MasterPage;
<telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true" />
我有一个Web用户控件放在母版页上。
在Web用户控件中,我想使用PageMethods,但它抱怨没有定义PageMethods。
function ddlSqlConnections_SelectedIndexChange(selectedValue) {
PageMethods.OnSelectedIndexChanged(selectedValue);
location.reload(true);
}
我向用户控件添加了一个新的ScriptManager,它抱怨一个页面上只能存在一个scriptmanager,所以
基本上如何从用户控件添加对母版页脚本管理器的引用?
似乎不可能?
谢谢,
答案 0 :(得分:0)
使用常规ScriptManager
代替RadScriptManager
:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
答案 1 :(得分:0)
我的结论是,使用Web用户控制页面方法无法实现,而是将AJAX用于Web服务:
$('.ddlSqlConnections').change(function (control) {
var selectedValue = control.currentTarget.value;
if (selectedValue == 0) {
return;
}
$.ajax({
type: "POST",
url: "AdminService.asmx/AdminConnectionsOnSelectedIndexChanged",
data: "{uniqueName: " + selectedValue + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
location.reload(true);
},
error: function (msg) {
alert('failed to send a web service request; please contact the administrator.')
}
});
});
答案 2 :(得分:0)
您可以尝试从用户控件中调用母版页中的方法。
Page.GetType().InvokeMember("MethodName", BindingFlags.InvokeMethod, null, this.Page, new object[] { });