Temmuz 29, 2010

JQuery ile Asp.Net Label'e değer atamak ve bu değeri kullanmak

JQuery ile bir asp.net label kontrolüne değer aktarıyor ve ardından asp.net button kontrolüne tıklayarak bu değer ile ilgili işlem yapıyorsanız , label kontrolünden gelen değerin boş olduğunu ve label değerinin silindiğini görürsünüz. Bunun nedeni JQuery nin label e verdiği değeri client tarafında işlemesi, code-behind tarafında değer aktaramamasıdır.
Bu yüzden button a tıklandığında code-behind'taki label değeri alınır ki bu değer de boştur. Bu sıkıntıyı önlemek için asp.net HiddenField kontrolünü  kullanmamız yeterli. Html tarafına;

//Burada content JQuery ile labele ve hiddenfield a eklenen veri
$('#<%= Labelim.ClientID %>').html(content);
$('#<%= HFieldim.ClientID %>').val(content);
<asp:Label Id="Labelim" runat="server" />
<asp:HiddenField ID="HFieldim" runat="server" />
Code-Behind tarafında ise asp.net button kontrolünün click eventine;
Labelim.Text=HFieldim.value.ToString  
yazarak label değerinin kaybolmasını önlemişte oluyoruz. 

HiddenField sayfada labelden farklı olarak viewstate üzerinde tutulur ve bu da bize bu işlemleri yapabilmemizi sağlar.Artık labeldeki değerimiz kaybolmadan JQuery ile değer atayabilir ve bunu buttona tıklayarak kullanabiliriz.

Bu konuda bir diğer çözüm ise  JQuery Session dır. Başka bir yazıda JQuery Session ı işlemek üzere.

Hiç yorum yok:

Yorum Gönder

System.Text.Json.JsonException hatası - cycle or if the object depth is larger than the maximum allowed depth of 32.

 Eğer .net'te aşağıdaki hatayı alıyorsanız; " A possible object cycle was detected which is not supported. This can either be due t...