|
عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
|
Cross Page Posting در ASP.NET 2.0 |
مديريت وب |
6276 |
12 |
4 |
Cross Page Posting در ASP
Cross Page Posting
در ASP.NET 2.0
ASP.NET 2.0 ، مجموعه ای از امكانات و
پتانسيل های جديد را در اختيار برنامه نويسان وب قرار می دهد . Cross Page Posting
يك نمونه در اين زمينه می باشد كه در ادامه به بررسی آن خواهيم پرداخت .
سناريوی ارسال اطلاعات در صفحات ASP.NET
فرم ها به همراه كنترل های سرويس دهنده موجود بر روی آنان دارای نقشی
اساسی در پياده سازی برنامه های وب خصوصا" بخش رابط كاربر می باشند . پس از فعال
كردن كنترل های button ، به صورت پيش فرض اطلاعات برای
همان صفحه ای كه شامل كنترل button است، ارسال (
post ) تا متناسب با رويداد ايجاد شده ،روتين مربوطه
فعال و عمليات لازم را انجام دهد ( جلوه ای از برنامه نويسی مبتنی بر رويداد در
برنامه های وب ASP.NET ) . در اكثر موارد سناريوی فوق
منطبق با خواسته پياده كنندگان نرم افزار می باشد ولی در برخی موارد ممكن است لازم
باشد كه اطلاعات برای صفحه ای ديگر در برنامه ارسال گردد . در چنين مواردی می توان
از متد Server.Transfer به منظور حركت بين صفحات استفاده
نمود ولی URL تغيير پيدا نخواهد كرد .
با استفاده از امكانات ارائه شده در ASP.NET 2.0 می توان
اطلاعات موجود در يك صفحه را برای صفحه ديگر ارسال تا زمينه استفاده از آنان برای
صفحه دوم فراهم گردد . با استفاده از ويژگی Cross Page Posting در ASP.NET 2.0
می توان يك postback طبيعی را به يك صفحه متفاوت در
برنامه انجام داد . در ادامه ، صفحه مقصد قادر به دستيابی مقادير كنترل های سرويس
دهنده موجود در صفحه مبداء خواهد بود .
نحوه استفاده از Cross Page Posting
برای استفاده از Cross Page Posting ، می توان از خصلت
PostBackUrl مربوط به كنترل button استفاده
و صفحه مقصد را مشخص نمود . در صفحه مقصد ، با استفاده از خصلت
PreviousPage ، می توان مقادير مورد نظر از صفحه
مبداء را بازيابی نمود . به صورت پيش فرض ، خصلت PreviousPage از
نوع Page می باشد ، بنابراين لازم است برای دستيابی به
كنترل ها از متد FindControl استفاده گردد .
نحوه عملكرد Cross Page Posting
فرآيند Cross Page Posting
بر اساس روال زير انجام می شود :
-
action فرم در صفحه اول ، متناسب با شرايط تعريف شده مقداردهی می گردد .
-
پس از فعال شدن
button مربوطه ، ارسال اطلاعات از صفحه اول به صفحه دوم
انجام می شود .
-
صفحه شماره دوم از
viewstate صفحه اول استفاده می نمايد .
-
در زمان دستيابی
PreviousPage ، مقدار Viewstate به عنوان يك نمونه
از صفحه شماره يك مجددا" مورد توجه قرار می گيرد .
-
صفحه شماره يك عمليات
خود را تا انتهای فاز LoadComplete انجام خواهد داد .
-
در اين مقطع ، امكان
استفاده از مقادير كنترل ها در صفحه اول برای صفحه دوم فراهم می گردد .
با توجه به اين كه صفحه
شماره يك عمليات خود را در پاسخ به يك cross-page post تا فاز LoadComplete
انجام خواهد داد ، لازم است در برخی موارد بررسی لازم در خصوص اين كه درخواست
ارسالی از نوع cross-page post نمی باشد را انجام داد . بدين منظور می توان از
IsCrossPagePostBack در صفحه شماره يك استفاده نمود :
|
If Not
Page.IsCrossPagePostBack Then
' پردازش يك درخواست معمولی
End If
|
مثال : نحوه استفاده از Cross Page Posting
در اين مثال از يك فرم به همراه دو button
استفاده شده است . پس از انتخاب يكی از آيتم های كنترل DropDownList
، در صورتی كه دكمه " ارسال به همين صفحه " فعال گردد ، اطلاعات برای صفحه
Mypage1.aspx ارسال و در خروجی و به كمك يك كنترل
label نمايش داده می شود .
در صورتی كه دكمه " ارسال به صفحه ديگر" فعال گردد ، اطلاعات برای صفحه
ShowInSecondpage.aspx ارسال می گردند . بدين منظور به
همراه Button2 از خصلت PostBackUrl استفاده شده
است كه مقدار آن ShowInSecondPage.aspx در نظر گرفته شده است .
شكل زير اجرای Mypage1.aspx
را نشان می دهد :

|
Mypage1.aspx |
|
<SCRIPT runat="server">
Sub ShowSelection (Src As Object, Args As
EventArgs)
Output.Text ="با تشكر ، "
Output.Text &=
"نظر شما توسعه " & MyDropDownList.SelectedItem.Text
Output.Text &= "
است "
End Sub
</SCRIPT>
|
|
<Html dir =rtl>
<Font Face="Tahoma" Size="2">
كدام بخش سايت srco نياز به توسعه دارد ؟
<form runat="server">
<asp:DropDownList id="MyDropDownList" runat="server"
style="font-family: Tahoma; font-size: 9pt">
<asp:ListItem Value="1" Text="بخش مقالات"/>
<asp:ListItem Value="2" Text="بخش نكته ها "/>
<asp:ListItem Value="3" Text="بخش خودآزمون ها"/>
<asp:ListItem Value="4" Text="بخش خودآموزها"/>
<asp:ListItem Value="5" Text="بخش دايره المعارف"/>
</asp:DropDownList>
<asp:Button Text="ارسال به همين صفحه" ID="Button1"
OnClick="ShowSelection" runat="server"
style="font-family: Tahoma; font-size: 8pt"/>
<asp:Button Text="ارسال به صفحه ديگر" ID="Button2"
PostBackUrl="ShowInSecondPage.aspx"
runat="server"
style="font-family: Tahoma; font-size: 8pt" />
<asp:Label id="Output" runat="server"/>
</form>
</html>
|
|
كد صفحه
ShowInSecondPage.aspx
در جدول زير نشان داده شده است :
|
ShowInSecondPage.aspx |
|
<SCRIPT runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim
SelectionItem As DropDownList
SelectionItem =
Page.PreviousPage.FindControl("MyDropDownList")
Output2.Text ="با تشكر ، "
Output2.Text &= "نظر شما توسعه " &
SelectionItem.SelectedItem.Text
Output2.Text &= " است "
End Sub
</SCRIPT>
|
|
<Html dir =rtl>
<Font Face="Tahoma" Size="2">
<form runat="server">
<asp:Label id="Output2" runat="server"/>
</form>
</body>
|
|
در صورتی كه دكمه "
ارسال به صفحه ديگر" فعال گردد ، آيتم انتخابی برای صفحه
ShowInSecondPage.aspx ارسال و با توجه به سياست های موجود نمايش داده می
شود .
