2

我有一个添加到我的 MasterPage 的 ScriptManager;

 <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true" />

我有一个放置在母版页上的 Web 用户控件。

在网络用户控件中,我想使用 PageMethods 但它抱怨 PageMethods 没有定义。

 function ddlSqlConnections_SelectedIndexChange(selectedValue) {

        PageMethods.OnSelectedIndexChanged(selectedValue);
        location.reload(true);
    }

我在用户控件中添加了一个新的 ScriptManager,它抱怨一个页面上只能存在一个脚本管理器,所以

基本上如何从用户控件添加对母版页脚本管理器的引用?

这似乎不可能?

谢谢,

4

3 回答 3

0

使用常规ScriptManager而不是RadScriptManager

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
于 2011-10-11T15:58:13.917 回答
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.')                    
                }
            });
        });
于 2011-10-12T10:45:04.590 回答
0

您可以尝试从您的用户控制中调用母版页中的方法。

 Page.GetType().InvokeMember("MethodName", BindingFlags.InvokeMethod, null, this.Page, new object[] { });
于 2011-10-12T10:57:43.933 回答