تبليغاتX
وبلاگ يك آي تي نويس ...
» امروز
» پند امروز :

وبلاگ يك آي تي نويس ...
كاملترين مرجع مقالات آموزشي آي تي در ايران

لينکستان


لينک دوستان


آمار و امکانات

لينك هاي ورودي


تبليغات

پشتیبان





پشتیبان

تبليغات
دانلود مجلات و كتب روز رايگان


انتقال اطلاعات توسط ASP.Net ما بین صفحه های آن

موضوع: انتقال اطلاعات توسط ASP.Net ما بین صفحه های آن
 انتقال اطلاعات در ASP.Net ما بین صفحه های آن به چندین شکل صورت می گیرد
1) به وسیله QueryString و استفاده از متد get:
این شکل یکی از ساده ترین راه های انتقال اطلاعات ما بین دو صفحه است .برای انتقال اطلاعات ابتدا یک صفحه به نام parsx1.aspx ساخته و دو کنترل TextBox و یک کنترل Button روی صفحه می گزارید. ID تکس باکس ها را به ترتیب txtUser و txtPas قرار می دهیم و البته به خواص دگمه یک خاصیت "PostBackUrl="~/pasx2.aspx اضافه کنید.
به تگ فرم نیز دو خاصیت روبرو را اضافه می کنیم : "action="pasx2.aspx" method="get . سپس صفحه pasx2.aspx را ساخته و در قسمت page_load کد زیر را وارد می کنیم
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Write("<b>User name : </b>" & Request.QueryString("txtName") & "<br>" _
                       & "<b>&nbsp;&nbsp;Password : </b>" & Request.QueryString("txtPas"))
    End Sub

حال صفحه parsx1.aspx را اجرا کنید.همان طور که مشاهده می کنید اگر در صفحه اول مقداری وارد کنید در صفحه دوم می توانید آنرا ببنید.
نکته Exclamation:
در ASP.Net بر خلاف تکنولوژی های پیشین( از جمله asp ) حتی در روش فرستادن اطلاعات از یک صفحه به صفحه دیگر با استفاده از QueryString اطلاعات مخفی می ماند. یعنی ASP.Net به طور خودکار اطلاعات را کد گزاری کرده سپس ارسال می کند و در آنسو نیز اطلاعات کد گزاری شده را دی کد می کند.
نکته Exclamation:
یکی از مهمترین محدودیت های ارسال اطلاعات به این روش اینست که مقدار اطلاعات مبادله شده در این روش کمتر از مقدار اطلاعات تبادل شده در روش های دیگر است.
نکته Exclamation:
کاربر شما با وارد کردن همان آدرس سایت (URL ) نتایج یکسانی با دفعات پیش خواهد گرفت
2) با استفاده از متد post :
تکنولوژی ASP.Net طور طراحی شده است که به شکل پیش فرض اطلاعات را به این شکل ما بین صفحه های خود انتقال دهد .همان صفحه parsx1.aspx را که در آموزش فوق ساختید باز کرده و در تگ form خاصیت method="get" را پاک کنید . با این کار به صورت پیش فرض "method="post خواهد شد.سپس به صفحه Pasrx2.aspx رفته و قسمت page_load کد زیر را وارد کنید:

Response.Write("<b>User name : </b>" & Request.Form("txtName") & "<br>" _
                       & "<b>&nbsp;&nbsp;Password : </b>" & Request.Form("txtPas"))

نکته 2.1Exclamation:
در متد پست شما نمی توانید به طور مستقیم مقدار متغییر ها را ببینید اما بهتر است خودتان متغییر ها را کد کنید چون بعضی از افراد می توانند با استفاده از یک سایت دیگر محتویات متغییر های شما را مشاهده یا دستکاری کنند

3) روش بعدی استفاده از Session است :
در این روش شما یک متغییر از نوع Session تعریف کرده و از آن مثل متغییر های دیگر استفاده می کنید. متغییرهای Session با هر بار اجرای سایت بروی کامپیوتر های کلاینت ایجاد می شوند و زمانی که کاربر مرورگر خود را می بندد از بین می روند. در صفحه parsx1.aspx خاصیت PostBackUrl="~/pasx2.aspx" دگمه را پاک کنید و سپس بروی آن دوبار کلیک کنید و کد زیر را بنویسید :
Session("user") = txtName.Text
        Session.Add("pas", txtPas.Text)
        Response.Redirect("pasx2.aspx")

سپس در قسمت page_load صفحه parsx2.aspx کد زیر را وارد کنید
 Try
            Response.Write("<b>User name : </b>" & Session("user") & "<br>" _
                       & "<b>&nbsp;&nbsp;Password : </b>" & Request.Form("Pas"))
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

نکته Exclamation:
علت استفاده از try احتمال به وجود آمد خطای احتمالی است. این خطا در صورتی رخ می دهد که صفحه parsx2.aspx به طور مستقیم فراخانی شود و در این صورت متغییر های Session قبل از تعریف و مقداردهی استفاده شوند
نکته Exclamation:
در مورد متغییرهای Session نیز نکته 2.1 برقرار است.
4) متغییرهای Application :
این نوع متغییر ها کاملا شبیه متغییرهای Session هستند .ولی با آنها یک تفاوت دارند و آن اینکه تا زمانی که Server شما در حال اجرا باشند متغییرهای از نوع Application از بین نخواهند رفت. بدین ترتیب در صورتی که تعداد متغییرهای از نوع Application زیاد باشد فشار زیادی به سرور خواهد آمد. این متغییر ها فقط و فقط در داخل سرور بوده و کاربر نمی تواند به هیچ شکلی آنها را مشاهده کند.قطعه کد زیر را به قسمت کد کلید مثال قبل اضافه کنید :
Application("user") = txtName.Text
        Application.Add("pas", txtPas.Text)
        Response.Redirect("pasx2.aspx")

حال در قسمت page_load صفحه parsx2.aspx قطعه کد زیر را اضافه کنید
        Try
            Response.Write("<b>User name : </b>" & Application("user").ToString & "<br>" _
                       & "<b>&nbsp;&nbsp;Password : </b>" & Application("Pas").ToString)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

نکته Exclamation:
برای اینکه در زمان تغییر دادن مقدار متغییرهایی از نوع Application مشکل تصادم بین کاربران پیش نیاید ( تغییر هم زمان مقدار متغییری از نوع Application توسط دو کاربر متفاوت ) می توان از متد lock و unlock به شکل زیر استفاده کرد.
Application.Lock()
        Application("user") = txtName.Text
        Application.Add("pas", txtPas.Text)
        Application.UnLock()
        Response.Redirect("pasx2.aspx")


5) و آخرین روش استفاده از Cache است :
کاشه یا همون Cache در واقع فقط برای ذخیره سازی اطلاعات به مدت مشخص است. نحوه استفاده از آن مانند Session است و فرق آن اینست که می توان برای آن مدت زمان تعیین کرد تا از منابع سرور کمتر استفاده شود. هر جا که می توانید از کاشه استفاده کنید چون باعث می شود منابع سیستم کمتر به هدر رود .کش را با استفاده از متد insert درج می کند تا بتوانیم برای آن زمان تعیین کنیم.مثال :

Dim date1 As String
        If Cache("date") Is Nothing Then
            Dim clsDate As New clsShamsi2Hejri()
            date1 = clsDate.ConverToShamsi(Now.ToLongDateString)
            Cache.Insert("date", date1, Nothing, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration)
        Else
            date1 = Cache("date")
        End If

با استفاده از متد DateTime.Now.AddHours(1) برای حذف این کاشه وقت تعیین می کنیم و دو گزینه اول نام و سپس مقدار کاشه است


| + | نوشته شده در پنجشنبه ششم مهر 1385 | نوشته شده توسط علی رستمی

آخرين مطالب ارسالي

بهترين مطالب را در وبلاگ ما بجوييد

وبلاگ جديد
تفاوت http با https در امنيت اطلاعات
امروز تولد 10 سالگي گوگل بود
دانلود ياهو مسنجر 9 نسخه نهايي قابل استفاده در ايران | Download yahoo messenger 9 final
لوگوهایی که قرار بود در گـــوگـــل قرار بگيرند...!
سِمَتِ آبدارچی در مایکروسافت
دانلود Google Chrome نسخه قابل استفاده در ايران با لينك مستقيم
جديدترين اخبار فناوري اطلاعات
لوگوي جديد گوگل به مناسبت افتتاحيه بازي هاي المپيك 2008 پكن (چين)
اپراتور روسی "مگافون" برنده احتمالی اپراتور سوم



لينک باکس