2011-10-11 26 views
2

我有一個ScriptManager被添加到我的母版頁;如何從用戶控件添加對母版頁腳本管理器的引用?

<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

如果您在母版頁中擁有scripetmanager,則不需要任何用戶控件。只要確保ScriptManager在Usercontrol之前加載。 – Asdfg

+0

你自己測試過嗎? –

回答

0

使用的常規ScriptManager代替RadScriptManager

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" /> 
+0

它沒有區別。 –

+0

您是否已將'WebMethod'屬性添加到代碼隱藏中的方法中? –

+0

是的。它沒有得到該方法。就像我說的那樣,它抱怨說「PageMethods」沒有被定義。 –

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.')      
       } 
      }); 
     }); 
0

您可以嘗試從您的userconrol調用masterpage中的方法。

Page.GetType().InvokeMember("MethodName", BindingFlags.InvokeMethod, null, this.Page, new object[] { }); 
相關問題