2015-07-20 23 views
6

Statik WebMethod yöntemini kullanarak jQuery'yi kullanarak yöntemin arkasında bir Kod aradım.Statik web yönteminde sayfa denetimlerine nasıl erişilir?

Bu web yöntemi çağrısı başarılı oldu, ancak bir metin kutusu denetimine erişmeye çalışıldığında hata veriyor. Statik olmayan alan, yöntem veya özellik için bir nesne başvurusu gereklidir.

[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"; 
} 

cevap

9

@Tim SCHMELTER tarafından belirtildiği gibi bu bir WebMethod gelen sayfanın kontrollerini erişemez çünkü bu soruya cevap vermez. yöntemin Üstü 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"); 
    } 
} 

kontrol değerlerini bulmak içindir aracılığıyla

gidin. [WebMethod] s'ın tüm noktası, ASP.Net sayfa yaşam döngüsünü çalıştırmadıklarıdır. Bu sayede hızlı ve paralel olabilirler. Denetimleriniz mevcut değil.

soru kabul cevap Web yöntemleri için yanlış How to get controls in static method

+1

Burada Null değeri var .. :( –

+6

Bu, webmethod sayfasının denetimlerine erişemediğiniz için bu soruyu yanıtlamıyor. Bu nedenle, başlıktan dolayı gelecekteki okuyucular için yararlı olabilir, ancak bunun yanlış bir cevabı var. –

+0

@Tim Schmelter: haklısınız – Athul

4

ait kopyası. yorumunda doğru sözü Tim Schmelter gibi

:

web yöntemleri sayfa durumunu taşımaz çünkü doğrudur bir WebMethod

gelen sayfanın kontrollerini erişemez. Tam bir geri gönderme değil. Bunun yerine sadece oturum çerezi istekle birlikte seyahat eder. Kontrol değerlerini almak veya ayarlamak için tam sayfa geri göndermeniz gerekir.