2011-10-11 2 views
2

내 MasterPage에 추가 된 ScriptManager가 있습니다.사용자 정의 컨트롤에서 마스터 페이지 스크립트 관리자에 대한 참조를 추가하는 방법은 무엇입니까?

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

마스터 페이지에 웹 사용자 컨트롤이 있습니다.

웹 사용자 컨트롤 내에서 PageMethods를 사용하고 싶지만 PageMethods가 정의되어 있지 않다는 불만이 있습니다.

function ddlSqlConnections_SelectedIndexChange(selectedValue) { 

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

나는 사용자 정의 컨트롤에 새 스크립트 관리자를 추가하고 그것은 단지 하나의 스크립트 관리자는 사용자 컨트롤에서 마스터 페이지에 스크립트 관리자에 대한 참조를 추가하는 방법을 너무

기본적으로 한 페이지에 존재할 수 불평 ?

가능한 것 같지 않습니까?

감사합니다,

+0

마스터 페이지에서 scripetmanager를 사용하는 경우 사용자 정의 컨트롤에서 아무 것도 필요 없습니다. UserControl 전에 ScriptManager가로드되는지 확인하십시오. – Asdfg

+0

직접 테스트 해 보셨습니까? –

답변

0

사용은 정기적 ScriptManager 대신 RadScriptManager의 :

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

차이가 없습니다. –

+0

'WebMethod' 속성을 코드 숨김 메소드에 추가 했습니까? –

+0

예. 그것은 방법에 도달하지 않습니다. 내가 말했듯이 "PageMethods"가 정의되어 있지 않다고 불평한다. –

0

내 결론은 웹 사용자 관리 페이지 방법으로 가능하지 내가 대신 웹 서비스와 AJAX를 사용했다 :

$('.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

사용자가 만든 마스터 페이지에서 메소드를 호출 할 수 있습니다.

Page.GetType().InvokeMember("MethodName", BindingFlags.InvokeMethod, null, this.Page, new object[] { }); 
관련 문제