2016-07-26 17 views
0

Wenn ich eine Seite Methode wie folgt:Zugriff auf Serversteuerelemente über Seitenmethoden?

[System.Web.Services.WebMethod] 
     public static string GetSearchResult(string searchKeyword) 
     { 
      ArrayList searchResultRows = new ArrayList(); 
      Random random = null; 
      for (int resultCount = 0; resultCount < 10; resultCount++) 
      { 
       random = new Random(resultCount); 
       searchResultRows.Add(string.Concat(searchKeyword, random.Next().ToString())); 
      } 
      GridView resultRepeater = new GridView(); 
      resultRepeater.DataSource = searchResultRows; 
      resultRepeater.DataBind(); 

      StringBuilder stringBuilder = new StringBuilder(); 
      System.IO.StringWriter textWriter = new System.IO.StringWriter(stringBuilder); 
      HtmlTextWriter htmlTextWriter = new HtmlTextWriter(textWriter); 
      resultRepeater.RenderControl(htmlTextWriter); 
      if (HttpContext.Current != null) 
      { 
       Page page = (Page)HttpContext.Current.Handler; 
       Label lbl = (Label)page.FindControl("lbl_test");//null 
       lbl.Text = searchResultRows[0].ToString();//exception 
      } 
      return stringBuilder.ToString(); 
     } 

ich mein vorhandenes Label lbl_test aktualisieren möchten, aber ich kann nicht das Etikett zugreifen zu setzen es Wert ist, wie Server-Steuerelemente von Seite Methoden für den Zugriff auf ?

+2

No way, können Sie nichts von der Seite von einem Webmethod zugreifen, da die Seite nicht durch den gesamten Lebenszyklus geht in dem es eine Reihe von Verarbeitungsschritten durchführt. Dazu gehören die Initialisierung, das Instanziieren von Steuerelementen, das Wiederherstellen und Verwalten des Status, das Ausführen von Ereignishandlercode und das Rendern. –

+0

Einfach kann man nicht. WebMethod ist Serverseite. – Furtiro

+0

@TimSchmelter: Vielen Dank –

Antwort

2

HTML

<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox> 
<input id="btnSearch" type="button" value="Search" 
    onclick = "GetSearchResult()" /> 
</div> 

JavaScript:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script> 
<script type = "text/javascript"> 
function GetSearchResult() { 
    $.ajax({ 
     type: "POST", 
     url: "CS.aspx/GetSearchResult", 
     data: '{search: "' + $("#<%=txtSearch.ClientID%>")[0].value + '" }', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: OnSuccess, 
     failure: function(response) { 
      alert(response.d); 
     } 
    }); 
} 
function OnSuccess(response) { 
    alert(response.d); 
} 
</script> 
Verwandte Themen