خانه > مقالات > asp.net > State Management در ASP. NET 2.0 (بخش چهارم)
منو
کاربری
سلام مهمان
IP: 38.107.179.221

نام کاربری
رمز عبور
ثبت نام
 رمز عبور فراموش شده
تاپ لینک
اشتراک گوگل
State Management در ASP. NET 2.0 (بخش چهارم)
Date 11/11/2008 17:47 Author srco.ir
RSS
  در ASP. NET 2.0 (بخش چهارم) 
آنچه تاكنون گفته شده است : 

 بخش اول 
 مفاهيم اوليه  

 ضرورت مديريت state در برنامه های وب
 بخش دوم view state : نحوه ايمن سازی اطلاعات ذخيره شده در view state 
بخش سوم view state : نحوه نگهداری Member Variables و اشياء سفارشی


يكی از مهمترين محدوديت های view state ، شعاع استفاده از اطلاعات ذخيره شده در آن توسط ساير صفحات وب است . اطلاعات ذخيره شده در view state صرفا" توسط صفحه ای كه آنها را ايجاد كرده است قابل استفاده می باشند و ساير صفحات نمی توانند از اطلاعات فوق استفاده نمايند . به عنوان مثال ، در صورتی كه كاربر به صفحه ای ديگر حركت و يا هدايت شود ، اطلاعات ذخيره شده در view state قابل دستيابی نبوده و عملا" از بين خواهند رفت . برای غلبه بر محدوديت فوق ( انتقال اطلاعات از يك صفحه به صفحه ديگر )، از روش های متعدد ديگری می توان استفاده كرد .  
در اين بخش ، با روش انتقال اطلاعات از يك صفحه به صفحه ای ديگر با استفاده از cross-page posting آشنا خواهيم شد .

cross-page posting
يكی از امكانات جديد ارائه شده در ASP. NET 2.0 ، امكان postback يك صفحه به صفحه ای ديگر است ( برخلاف گزينه پيش فرض كه هر صفحه به خود postback می گردد ) .
بدين منظور خصلت جديد PostBackUrl در كنترل هائی نظير ImageButton ، LinkButton و Button پيش بينی شده است . برای استفاده از ويژگی فوق كافی است مقدار PostBackUrl برابر با آدرس صفحه مقصد در نظر گرفته شود . بدين ترتيب ، پس از كليك بر روی دكمه موجود بر روی فرم ، صفحه به همراه تمامی مقادير كنترل های ورودی موجود بر روی آن برای آدرس مشخص شده ارسال می گردد .

مثال
در اين مثال بر روی فرم وب از دو كنترل text box و يك كنترل button استفاده شده است ( صفحه Crosspage1.aspx ) . پس از كليك بر روی‌ دكمه موجود بر روی فرم ، اطلاعات موجود بر روی فرم برای صفحه ای با نام Crosspage2.aspx ارسال می گردد .  

صفحه Crosspage1.aspx
<%@ Page Language="VB" Culture="fa-IR" UICulture="fa-IR" %>

<script runat="server">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" >
<head id="Head1" runat="server">
  <title>صفحه اول </title>
</head>
<body style="font-family: Tahoma">
  <form id="form1" runat="server" >
  <div>
  نام <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox><br /><br />
  نام خانوادگی  <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox> <br />
  <br />
  <asp:Button runat="server" ID="cmdPost"
  PostBackUrl="CrossPage2.aspx"
  Text="ارسال به صفحه ديگر" Font-Names="Tahoma" /><br />
  </div>
</form>
</body>
</html>


صفحه Crosspage1.aspx شامل هيچگونه كدی نمی باشد .
پس از اجرای كد فوق و كليك بر روی دكمه "ارسال به صفحه ديگر" ، صفحه برای CrossPage2.aspx ارسال می گردد . صفحه Crosspage2.aspx با استفاده از خصلت Page.PreviousPage قادر به برقراری ارتباط با صفحه Crosspage1.aspx خواهد بود .
كد زير نحوه دريافت و نمايش عنوان صفحه قبلی را در صفحه Crosspage2.aspx نشان می دهد .

صفحه Crosspage2.aspx
<%@ Page Language="VB" Culture="fa-IR" UICulture="fa-IR" %>

<script runat="server">
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
  If PreviousPage IsNot Nothing Then
  lblInfo.Text = "شما از صفحه ای با عنوان " & _
  "<b>" & PreviousPage.Header.Title & "</b>" & _
  " به اين صفحه آمده ايد" & "<br />"
  End If
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" >
<head id="Head1" runat="server">
  <title>صفحه دوم</title>
 </head>
<body style="font-family: Tahoma">
  <form id="form1" runat="server" >
  <div>
  <asp:Label ID="lblInfo" runat="server" Font-Size="Small"></asp:Label>
  </div>
</form>
</body>
</html>
در صفحه Crosspage2.aspx قبل از تلاش برای دستيابی به شی PreviousPage ، مقدار آن با null بررسی می گردد . در صورتی كه مقدار آن معادل null باشد ، cross-page postback محقق نشده است . اين بدان معنی است كه صفحه Crosspage2.aspx مستقيما" درخواست شده است و يا به خود postback شده است . در چنين مواردی شی PreviousPage قابل دسترس نخواهد بود .
در بخش پنجم بحث خود را بر روی cross-page posting ادامه داده و با نحوه دريافت اطلاعات بيشتر از صفحه مبداء آشنا خواهيم شد .
 
Tags -   
نظری وجود ندارد
نام
ایمیل
نظر
mail:info@taymaz.ir   
script & code