SalarSoftwares logo

خوش آمدید. در این سایت می توانید ابزارهای دلفی و نرم افزارها را دریافت کنید.

صفحه اصلی | مقالات | سوال و جواب | Downloads | Beeper help | جستجو | تصاویر برنامه ها | تبلیغات | تماس با ما | وبلاگ شخصی

انتقال مقادير بين صفحات وب در ASP.NET

هنگامي که يک Web Application ايجاد مي کنيد، گاهي اوقات نياز به انتقال مقادير بين صفحات داريد.

اصول کار:
ابتدا بايد براي صفحه اي که قصد ارسال مقادير از آن را داريد، يک نام کلاس دلخواه تعيين کنيد.
اينکار با ذکر خاصيت ClassName و مقداردهي به آن در دايرکتيو Page انجام مي پذيرد.
سپس، براي هر کدام از مقادير که قصد ارسال آنها را داريد بايد يک Property با دستياب Get در صفحه مبدا ايجاد کنيد.
مقدار برگشتي دستياب Get، مقداري است که قصد پاس دادن آن را داريد همانند مقدار يک Text Box.
در نهايت، اطلاعات را با استفاده از متد Transfer شي Server به صفحه مقصد پاس مي دهيم.
در صفحه اي که قصد بازيابي اطلاعات ارسال شده را داريد، بايد يک مرجع به کلاسي که در صفحه مبدا نوشته شده با اضافه کردن دايرکتيو Reference و تنظيم خاصيت Page آن به نام صفحه مبدا، ايجاد کنيد.
حال در صفحه مقصد با مساوي قرار دادن يک متغير نمونه که از نوع کلاس صفحه مبدا ايجاد شده، درخواست HTTP را که شامل مقادير ارسال شده است، از خاصيت Handler شي HttpContext دريافت مي کنيم.
متغير نمونه بايد به نوع کلاس صفحه مبدا که اطلاعات را ارسال کرده تبديل شود.
پس از تبديل سازي مي توان به مقادير پاس داده شده از طريق خواص شي تبديل شده، دسترسي پيدا کرد.

ايجاد صفحه اي که قصد ارسال مقادير آن را داريم:
1) ايجاد يک نام کلاس براي صفحه مبدا با اضافه کردن خاصيت ClassName به دايرکتيو Page و دادن يک مقدار (نام کلاس) دلخواه به آن.

<%@ Page Language="VB" ClassName="MyClassName" %>

2) ايجاد يک خاصيت با دستياب Get براي هر کدام از مقاديري که قصد ارسال آن را به صفحه ديگر داريم.
دستياب Get، تنها بايد مقداري را که قصد ارسال آن را داريم برگرداند همانند مقدار يک Text Box.

<script runat="server">
Public ReadOnly Property FirstName() As String
Get
Return TextBox1.Text
End Get
End Property
</script>

3) ارسال مقادير به صفحه مقصد با استفاده از متد Transfer شي Server.

Sub SubmitButtonClick(sender As Object, e As EventArgs)
Server.Transfer("secondpage.aspx")
End Sub

مثال زير، يک مثال کامل از چگونگي نحوه ارسال مقادير دو Text Box به صفحه اي ديگر، در صفحه مبدا است.

<%@ Page Language="VB" ClassName="FirstPageClass" %>

<html>
<head>

<script runat="server">
Public ReadOnly Property FirstName() As String
Get
Return firstTextBox.Text
End Get
End Property

Public ReadOnly Property LastName() As String
Get
Return secondTextBox.Text
End Get
End Property

Sub ButtonClicked(sender As Object, e As EventArgs)
Server.Transfer("secondpage.aspx")
End Sub

</script>

</head>

<body>

<form runat="server">
First Name:
<asp:TextBox id="firstTextBox"
runat="server"/>
<br>
Last Name:
<asp:TextBox id="secondTextBox"
runat="server"/>
<br>
<asp:Button
OnClick="ButtonClicked"
Text="Go to second page"
runat=server />
</form>

</body>

</html>

ايجاد صفحه اي که قصد دريافت مقادير ارسال شده در آن را داريم:
1) در وب فرمي که قصد دريافت مقادير ارسال شده را داريد، يک دايرکيتو Reference ايجاد کنيد و خاصيت Page آن را برابر با نام وب فرمي که قصد دريافت اطلاعات از آن را داريد، قرار دهيد.

<%@ Reference Page="firstpage.aspx" %>

2) يک متغير از نوع وب فرمي که قصد ارسال اطلاعات از آن را داريد، تعريف کنيد.

<script runat="server">
Dim fp As FirstPageClass
</script>

3) شي IHttpHandler، شامل يک نمونه از تابع کنترل کننده اي است که درخواست هاي Http را جهت پردازش دريافت مي کند.
از آنجا که نوع شي IHttpHandler همانند نوع متغير تعريف شده در مرحله قبل نيست، بايد قبل از عمل انتساب به متغير، به نوع کلاس وب فرمي که اطلاعات از آن ارسال شده تبديل شود.
شي کنترل کننده ي تقاضاها، با استفاده از خاصيت Handler شي HttpContext قابل دستيابي است.

<script runat="server">
Sub Page_Load()
If Not IsPostBack Then
fp = CType(Context.Handler, FirstPageClass)
End If
End Sub
</script>

4) حال، متغير تعريف شده در مرحله 2، شامل يک نمونه از کلاس وب فرمي است که اطلاعات را ارسال کرده.
به راحتي مي توان به مقادير وب فرم مبدا دسترسي پيدا کرد.
در ساده ترين حالت با استفاده از سينکس زير، دستيابي به مقادير وب فرم مبدا امکان پذير است:

<%=fp.FirstName%>

مثال زير، يک مثال کامل از چگونگي نحوه دريافت مقادير دو Text Box از صفحه اي ديگر است.

<%@ Page Language="VB" %>
<%@ Reference Page="firstpage.aspx" %>

<html>

<head>

<script runat="server">

Dim fp As FirstPageClass

Sub Page_Load()
If Not IsPostBack Then
fp = CType(Context.Handler, FirstPageClass)
End If
End Sub

</script>

</head>

<body>

<form runat="server">

Hello <%=fp.FirstName%> <%=fp.LastName%>

</form>

</body>
</html>

موفق باشيد.

منبع: www.barnamenevis.org
نویسنده:Behrouz_Rad

Titles

صفحه اصلی
Up
سوال و جواب
Downloads
Beeper help
جستجو
تصاویر برنامه ها
تبلیغات
تماس با ما
وبلاگ شخصی

جستجو در سایت

لینک سایر سایت ها


 صفحه اصلی | مقالات | سوال و جواب | Downloads | Beeper help | جستجو | تصاویر برنامه ها | تبلیغات | تماس با ما | وبلاگ شخصی
در صورت بروز هر گونه مشكل در استفاده از نرم افزار هاي اين سايت, مشكل را با مدير اين سايت در ميان بگذاريد.

Creative Commons License
This work is licensed under a Creative Commons Attribution 2.5 License.

آخرين به روز رسانی: آمار بازدید: