2015-07-20 24 views
6

Ho chiamato un metodo Code behind usando jQuery usando un metodo statico WebMethod.Come accedere ai controlli della pagina all'interno di un metodo Web statico?

Quella chiamata al metodo web è stata eseguita correttamente ma quando si tenta di accedere a un controllo casella di testo genera errori. Un riferimento a un oggetto è richiesto per il campo, il metodo o la proprietà non statici.

[WebMethod]  
public static Savedata() 
{ 
    //code to insert data to DB 

    //after inserting data successfully i need to change the text box text like following.   
     txtStatus.Text="Data Received"; 
} 

risposta

9

Come già detto da @ Tim Schmelter Ciò non rispondere a questa domanda, perché non è possibile accedere ai controlli di pagina da un WebMethod.

prega di passare attraverso asp.net access a control from static function

public static void Savedata() 
{ 
    if (HttpContext.Current != null) 
    { 
     Page page = (Page)HttpContext.Current.Handler; 
     TextBox TextBox1 = (TextBox)page.FindControl("TextBox1"); 

     TextBox TextBox2 = (TextBox)page.FindControl("TextBox2"); 
    } 
} 

Sopra metodo è per trovare i valori di controllo. L'intero punto di [WebMethod] s è che non eseguono il ciclo di vita della pagina ASP.Net. In questo modo, sono veloci e parallelizzabili. I tuoi controlli non esistono.

tua domanda è duplicato di How to get controls in static method

+1

qui ottengo il valore Null .. :( –

+6

Questo non risponde a questa domanda perché non è possibile accedere ai controlli della pagina da un metodo web. Quindi forse è utile per i futuri lettori a causa del titolo, ma è la risposta sbagliata per questo numero –

+0

@Tim Schmelter: hai ragione – Athul

4

La risposta accettata è sbagliato per i metodi web.

Come accennato Tim Schmelter correttamente in un commento:

non si può accedere ai controlli di pagina da un webmethod

Questo è vero in quanto i metodi web non portano lo stato della pagina. Non è un postback completo. Invece, solo il cookie di sessione viaggia con la richiesta. Devi eseguire un postback di una pagina intera per ottenere o impostare i valori di controllo.