شرکت داده پردازان راتین

طراحی و برنامه نویسی وب سایت، سی دی مالتی مدیا و تولید نرم افزارهای سفارشی

شرکت داده پردازان راتین

طراحی و برنامه نویسی وب سایت، سی دی مالتی مدیا و تولید نرم افزارهای سفارشی

ViewState یک قابلیت جدید و جالب در ASP.net

 قابلیت ViewState را می توان در صفحات به شکل زیر غیر فعال نمود.
<%@ Page Language="C#" EnableViewState="false" %>

در نسخه ASP.NET 3.5 قابلیت جالبی برای غیر فعال نموده این ویژگی ارائه شد. با استفاده از این ویژگی می توان در فایل Web.Config این ویژگی را غیر فعال نمود. در اینصورت این قابلیت در تمامی صفحات غیر فعال خواهد شد و دیگر نیاز نیست در تک تک صفحات  و کنترل ها قابلیت ViewState را غیر فعال نمایید.
<pages enableViewState="false"></pages>

اما این ویژگی دارای نقصی نیز می باشد. بدین ترتیب که اگر در فایل Web.Config این ویژگی را غیر فعال نمایید، دیگر قادر نخواهید بود که در صفحاتی که به این ویژگی نیاز دارید، آن را فعال نمایید!
مشکل دیگری که در این میان وجود داشت این بود که کنترل ها قابلیت ViewState خود را از والد (Parent) خود به ارث می برند. یعنی اگر این قابلیت در یک صفحه (Page) غیر فعال شود، دیگر نمی توان در سایر کنترل های صفحه این ویژگی را فعال نمود. به طور مثال ممکن است که شما نیز داشته باشید ویژگی ViewState فقط برای یکی از کنترل های صفحه فعال باشد که این موضوع امکان پذیر نبود.
روش دیگر این بود که ویژگی ViewState را برای صفحه فعال نموده و سپس برای تک تک کنترل ها فعال یا غیر فعال کنیم که خود این موضوع نیز مشکلاتی را در پی داشت.
آغاز:
اما ویژگی جالبی که در ASP.NET 4 معرفی شده است ViewStateMode می باشد که اکنون به معرفی آن می پردازیم.
اگر به دقت به کنترل های موجود نگاه کنید، متوجه خواهید شد که علاوه بر ویزگی EnableViewState یک ویژگی جدید به نام ViewStateMode نیز اضافه شده است.
با استفاده از این ویژگی می تواند قابلیت ViewState را در یک صفحه (و یا یک کنترل والد مانند Panel) غیر فعال نمود در حالیکه در کنترل های موجود در صفحه فعال می باشد.

ویژگی ViewStateMode می تواند شامل مقادیر زیر باشد:
 Inhert: این مقدار به صورت پیشفرض برای این ویژگی در نظر گرفته شده است و بدین معنی می باشد که قابلیت ViewState در این کنترل از والد آن به ارث برده می شود. این ویژگی دقیقا همان حالتی است که تاکنون در نسخه های مختلف زبان ASP.NET وجود داشته است.
   
Disabled: اگر مقدار ویژگی ViewStateMode برابر Disabled باشد، ویژگی ViewState برای این کنترل غیر فعال می باشد
    
Enabled: اگر مقدار ویژگی ViewStateMode برابر Enabled باشد، ویژگی ViewState برای این کنترل فعال می باشد. حتی اگر این قابلیت برای کنترل والد و حتی خود صفحه نیز Disabled شده باشد، باز هم ویژگی ViewState برای این کنترل فعال می باشد.

شرکت داده پردازان راتین

www.ratingroup.com
 تذکر مهم:
هنگام استفاده از ویژگی ViewStateMode حتما باید ویژگی EnableViewState فعال باشد. به طور مثال اگر ویژگی EnableViewState را برای یک صفحه غیر فعال کنید، دیگر قابلیت ViewStateMode برای آن صفحه و کنترل های موجود در آن کاملا بلااثر خواهد بود.
در قسمت زیر مثالی را ملاحظه می نمایید که قابلیت ViewStateMode برای صفحه غیر فعال شده است و برای یکی از کنترل های موجود در آن فعال.
<%@ Page Language="C#" ViewStateMode="Disabled" %>
<asp:TextBox ID="TextBox1" runat="server" ViewStateMode="Enabled" ></asp:TextBox>

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد