0

انتقال اطلاعات از یک صفحه به صفحه ای دیگر ASP .NET

 
mohamadaminsh
mohamadaminsh
کاربر طلایی1
تاریخ عضویت : دی 1389 
تعداد پست ها : 25772
محل سکونت : خوزستان

انتقال اطلاعات از یک صفحه به صفحه ای دیگر ASP .NET
چهارشنبه 24 خرداد 1391  6:30 PM

انتقال اطلاعات از یک صفحه به صفحه ای دیگر ASP .NET



یکی از مهمترین محدودیت های 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>
شکل ۱ ،  نحوه انتقال اطلاعات از یک صفحه به صفحه دیگر  را نشان می دهد .

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

کریمی که جهان پاینده دارد               تواند حجتی را زنده دارد

 

دانلود پروژه و کارآموزی و کارافرینی

تشکرات از این پست
دسترسی سریع به انجمن ها