2010-01-19 3 views
-2

Я вызываю функцию в codebehind из javascript, используя webservice.Чтобы получить элементы управления внутри статической функции

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 
    } 

Проблема в IAM не получают управления в ASPX странице в SaveInfo.Can никому помочь контроля доступа в форме внутри saveinfo?

ответ

1

Статические методы страницы не могут получить дерево управления страницей. (Они не получают ViewState)

Вам необходимо использовать UpdatePanel.

Вы можете сделать asp:Button внутри <div style="display:none> с регулярным Click события, сделать UpdatePanel вызываемую кнопку, и использовать Javascript для имитации нажатия кнопки.

В качестве альтернативы вы можете отправить значения элементов управления, которые вам нужны, в качестве параметров для вашего метода страницы в Javascript. Это будет более эффективно, чем использование UpdatePanel.

0

Вы не можете.

Ваш WebMethod является статическим, то есть он существует один раз для всех экземпляров вашего класса страниц. В нем нет понятия какого-либо отдельного экземпляра вашей страницы.

Если вам нужно отправить свою страницу назад, вам нужно будет использовать обратные вызовы, а не вызовы веб-сервисов.

Смежные вопросы