آموزش پیشرفته ASP.Net Web Forms نحوه کار با قابلیت ViewState
792 بار بازدید -
3 سال پیش
-
به نام خدا.در این قسمت
به نام خدا.در این قسمت از آموزش درباره ViewState صحبت خواهیم کرد.View state متدی در ASP.NET است که مقادیر (Value) صفحه و کنترل ها را هنگام رفت و برگشت صفحه ، حفظ میکنه. یک پروژه جدید از نوع ASP.Net Web Application داریم.از قسمت سولوشن برنامه ، یک Web Form جدید به پروژه اضافه میکنیم.دوتا Button از نوع asp اضافه میکنیم ، یکی برای ذخیره کردن یک مقدار در ViewState و یکی هم برای خواندن ViewState .یک اینپوت تکست input text (runat=server) هم برای نمایش مقدار ذخیره شده در ViewState اضافه میکنیم.حالا روی Button "ذخیره کردن" دابل کلیک میکنیم تا ایونت کلیکش در سمت سرور باز شه . توجه داشته باشید ما تو وب اپلیکیشن نمیتونیم متغییر سراسری تعریف کنیم و اصلا متغییر سراسری نداریم.داخل ایونت کلیک Button "ذخیره کردن" این کد رو میزنیم:
ViewState.Add(myID,Txt1.Value)
در کد بالا ما یک مقداری رو از اینپوت تکست input text به myID نسبت دادیم و به ViewState اضافه کردیم.گام بعدی ما روی Button "خواندن" دابل کلیک میکنیم تا ایونت کلیکش در سمت سرور باز شه ، داخل ایونت کلیک Button "خواندن" این کد رو میزنیم:
Txt1.Value = ViewState[myID].ToString()
کد بالا مقدار myID رو که به ViewState اضافه شده بود ، به یک رشته تبدیل میکنه و درون اینپوت تکست input text میریزه به عبارتی عمل خواندن رو انجام میده.
بنابراین اینجا متوجه شدیم که ViewState شبیه یک متغییر سراسری هست با این تفاوت که تنها درون یک فرم شناخته میشود و قابل استفاده است اما درون فرم های دیگر شناخته نمیشود و قابل بهره وروی و قابل استفاده نیست.برای درک بهتر این موضوع یک وب فرم دیگر میسازیم و داخل ایونت Page_Load کد زیر رو میزنیم تا مقدار اضافه شده به ViewState را بخواند و در فرم 2 چاپ کند اما هنگام اجرا و لود شدن فرم 2 خطا میدهد و اصلا ViewState را نمیشناسد چون ViewState تنها در یک فرم قابل شناسایی است نه فرم های دیگر:
String str = ViewState[myID].ToString()
Response.Write(str)
اما روش نوشتن کد بالا زیاد جالب نیست و برنامه نویس ها به این شکل معمولا کد نمیزنن. در فرم 1 بهتره که یک پروپرتی سراسری تعریف کنیم و سپس فراخوانیش کنیم به این شکل:
public string myID {
get { return ViewState[myID].ToString() as string }
set { ViewState.Add(myID, value) }
مجددا وارد ایونت کلیک Button "ذخیره کردن" میشیم و کد رو به این شکل میزنیم (اینجا set فراخوانی میشود) :
myID = Txt1.Value
وارد داخل ایونت کلیک Button "خواندن" هم کد رو به این شکل میزنیم (اینجا get فراخوانی میشود) :
Txt1.Value = myID
3 سال پیش
در تاریخ 1400/05/03 منتشر شده
است.
792
بـار بازدید شده