تبلیغات
آموزشASP.NET - State Management در ASP. NET 2.0 (بخش چهارم)
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
سه شنبه 24 اسفند 1389 :: نویسنده : ارش کاکاوند

یكی از مهمترین محدودیت های 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
/>
       
نام خانوادگی &nbsp;<asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>&nbsp;<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>

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

 نحوه انتقال اطلاعات از یك صفحه به صفحه دیگر
شكل 1 : نحوه انتقال اطلاعات از یك صفحه به صفحه دیگر 

در صفحه Crosspage2.aspx قبل از تلاش برای دستیابی به شی PreviousPage ، مقدار آن با null بررسی می گردد  . در صورتی كه مقدار آن معادل null باشد ، cross-page postback  محقق نشده است . این بدان معنی است كه صفحه Crosspage2.aspx مستقیما" درخواست شده است و یا به خود postback شده است . در چنین مواردی شی PreviousPage قابل دسترس نخواهد بود .
در بخش پنجم بحث خود را بر روی cross-page posting  ادامه داده و با نحوه دریافت اطلاعات بیشتر از صفحه مبداء آشنا خواهیم شد . 





نوع مطلب :
برچسب ها :
لینک های مرتبط :


دوشنبه 27 شهریور 1396 09:02 ق.ظ
My family members always say that I am wasting my time here at web, except I know I am getting know-how every day
by reading thes pleasant content.
سه شنبه 14 شهریور 1396 05:16 ق.ظ
Truly no matter if someone doesn't know then its up to other viewers that they will help, so here
it happens.
چهارشنبه 1 شهریور 1396 11:10 ق.ظ
Hey there! I simply would like to offer you a big thumbs
up for your great information you've got right here on this post.

I'll be returning to your web site for more soon.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :