loading...
پروژه های نرم افزاری
سعید قاسمی بازدید : 362 چهارشنبه 08 شهریور 1391 نظرات (0)

یکی از مهمترین محدودیت های 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

<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

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

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>

شکل ۱ ،  نحوه انتقال اطلاعات از یک صفحه به صفحه دیگر  را نشان می دهد .

StateManagement3 انتقال اطلاعات از يك صفحه به صفحه ای ديگر ASP .NET
شکل ۱ : نحوه انتقال اطلاعات از یک صفحه به صفحه دیگر

در صفحه Crosspage2.aspx قبل از تلاش برای دستیابی به شی PreviousPage ، مقدار آن با null بررسی می گردد  . در صورتی که مقدار آن معادل null باشد ، cross-page postback  محقق نشده است . این بدان معنی است که صفحه Crosspage2.aspx مستقیما” درخواست شده است و یا به خود postback شده است . در چنین مواردی شی PreviousPage قابل دسترس نخواهد بود .

مطالب مرتبط
ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 67
  • کل نظرات : 28
  • افراد آنلاین : 2
  • تعداد اعضا : 36
  • آی پی امروز : 17
  • آی پی دیروز : 8
  • بازدید امروز : 68
  • باردید دیروز : 9
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 208
  • بازدید ماه : 475
  • بازدید سال : 3,107
  • بازدید کلی : 44,683