عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
State Management در ASP. NET 2.0 (بخش چهارم) |
مديريت وب |
17752 |
11 |
3.9 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
State Management در ASP. NET 2.0
State Management در 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> |
شكل
1 ، نحوه انتقال اطلاعات از يك صفحه به صفحه ديگر را نشان می
دهد .

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