Tweet

Viewstate Kavramı

Merhab Arkadaşlar ;
Artık Asp.Net ile kodlamalara başlıyoruz ilk olarak 3.5 ile birlikte gelen Viewstate kavramını öğreneceğiz ne işimize yarar sağladığı avantajlar ve dezavantajları örneğimizde göreceğiz.[...]

ViewState web formundaki elemanların mevcut durumunu saklar Peki Nedir bu mevcut durum.Örneğin ;
Textbox kontrolünde olay bildirim kodlarını saklar bunu ise biz bir Default.aspx adında bri sayfa açalım ve sahneye bri tane textbox ekleyelim. <asp:textbox id="textbox1" runat="server" />
Sadece bu şekilde ekler isek bir olay gerçekleşmediğinde viewstate yordam saklama ihtiyacı duymayacaktır. En basit bir örnek yapalım hemen ViewState görmek amaçlı
Form Sayfamız Arkadaşlar Default.aspx
CODE:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="mesaj" runat="server"></asp:Label><br />
<asp:TextBox ID="isim_kutusu" OnTextChanged="isim_girdisi" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Yazdır" /><br />
&nbsp;
<br />

</div>
</form>
</body>
</html>


Şimdide Kodları yazacağımız Default.aspx.cs

CODE:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void isim_girdisi(object sender, EventArgs e)

{
mesaj.Text = "Merhaba " + isim_kutusu.Text + "<b><font color=red>...TheCoders.Com Bilgi Paylaştım Sitesine Hoşgeldin.</font></b><br>" + DateTime.Now.ToString()
;
}
}

Buraya Kadar Yapımş Olduğumuz Örnek Gayet Basit olduğunu göreceksiniz zaten bri textbox içine isim yazdırıyor ve butona basıldığında bizim belirlediğimiz mesaj ile birlikte textbox içine yazdığımı mesaj ile ekrana yazdırılıyor. Peki bu arda ViewState nasıl göreceğiz derseniz hemen size localhost da çalıştırdın dan sonra localhostda sayfa üzerinde sağ cilick kaynağı görüntüle ile sayfanın kaynak kodunu yazıyorum
CODE:
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTIxNDI
yOTM0Mg9kFgICAw9kFgQCAQ8PFgIeBFRleHQFf01lcmhhYmEgRXJrYU4gV
GVwZTxiPjxmb250IGNvbG9yPXJlZD4uLi5UaGVDb2RlcnMuQ29tIEJpbG
dpIFBheWxhxZ90xLFtIFNpdGVzaW5lIEhvxZ9nZWxkaW4uPC9mb250PjwvY
j48YnI+Ni8yNi8yMDA5IDI6NTg6MDUgUE1kZAIDDw8WAh8ABQpFcmthTiB
UZXBlZGRktv7DtmLlNOqWP0TEanfmNfQAtcI
=" />
</div>

<div>
<span id="mesaj">Merhaba ErkaN Tepe<b><font color=red>...TheCoders.Com Bilgi Paylaştım Sitesine Hoşgeldin.</font></b><br>6/26/2009 2:58:05 PM</span><br />
<input name="isim_kutusu" type="text" value="ErkaN Tepe" id="isim_kutusu" />
<input type="submit" name="Button1" value="Yazdır" id="Button1" /><br />
&nbsp;
<br />

</div>

<div>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwLwiaifBQLzqNCkCgKM54rGBmWp15gU6xjkgSzvCL8sJN+xiM2Z" />
</div></form>

İşte Arkadaşlar ViewState value değerini gördünüz sinsice daha doğrusu akıllıca buraya bir Value(değer) gönderdi ve client tarafındaki kullanıcı bunun ne olduğu anlamadı yani gizli bir form elemanı oluşturdu ve girilen değerleri burada kodlayarak yani value="....." Değerler atayarak gizledi.
ViewState Dez avantaji ise bizi lazım olmiyacak yerlerde kullanılmıası örneğin veri çekmek istediğimiz bir GridView olması bizm dezavantajımız Neden çünkü zaten ama kişiye veriyi göstermek nedne ViewState kullanarak gizliyelimki hem bu sayfanın boyutunu artıracak ve gereksiz yere sayfayı performansını etkileyecek Peki ViewState nasıl buradan kaldıracağız eklemiş olduğunuz GridView de arkadaşlar gelip EnableViewState="false" Dediğiniz vakit artık GridView'de ViewState tekonolojisi kullanılmayacak . İnş Yararlı olmuştur. Diğer Makalelerde Görüşmek Ümidiyle KalınSalıcakla..


ErkanTepe
erkan.tepe123@gmail.com
3 Subat 2008 13:21

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg