2010-01-19 42 views
-2

我使用webservice从javascript调用代码隐藏函数。获取静态函数中的控件

function GetAdmissionType() 
     { 
      InitComponents(); 
      var type=""; 
      type=document.getElementById(dlAdmissionType.id).value; 
      document.getElementById(hdnAdmissionType.id).value=document.getElementById(dlAdmissionType.id).value; 

      else if(type=="2") 
      { 
        InitComponents(); 
        ViewResettingPanel() 
        makeFavorite(1); 

      } 
    } 



     function makeFavorite(id) { 
    PageMethods.SaveInfo(id, CallSuccess, CallFailed); 
} 

// This will be Called on success 
function CallSuccess(res, id) { 
alert(destCtrl); 
} 

// This will be Called on failure 
function CallFailed(res) { 
alert(res.get_message()); 
} 

以下是我在代码隐藏代码

[System.Web.Services.WebMethod] 
    public static void SaveInfo(String Id) 
    { 

     //to get textbox in form 
    } 

问题是在SaveInfo.Can任何aspx页面IAM没有得到控制有助于访问控制的形式里面saveinfo?

回答

1

静态页面方法无法获取页面的控制树。 (他们没有收到ViewState)

您将需要使用UpdatePanel

,您可以拨打<div style="display:none>内的asp:Button与常规Click事件,使通过该按钮触发的UpdatePanel,并使用JavaScript来模拟按钮的点击。

或者,您可以将您需要的控件的值作为参数发送到JavaScript中的页面方法。这比使用UpdatePanel更有效率。

0

你不能。

对于您的页面类的所有实例,您的WebMethod是静态的,意味着它存在一次。它没有任何个人页面实例的概念。

如果您需要将您的页面发回,您需要实际使用回传,而不是Web服务调用。