Cross-Page در Asp.Net

در این مقاله میخواهیم چگونه یک پست بک cross-page در Asp.Net به کار بگیریم

Cross-Page در Asp.Net

در این مقاله میخواهیم چگونه  یک پست بک cross-page در Asp.Net به کار بگیریم

هنگامی که نیاز به انتقال برخی از اطلاعات را از یک صفحه وب به یک صفحه وب دیگر وجود دارد و سپس به طور معمول اولین چیزی که یک توسعه دهنده فکر می کند استفاده ازSession است اما استفاده از یک Session می تواند گاهی اوقات به دلیل صفحه های سنگین استفاده از آن مناسب نباشد یک راه برای انجام آن و در نتیجه جلوگیری از Session و یا دیگر روش های مدیریت این حالت وجود دارد ما میتوانیم پست بک cross-page استفاده کنیم که به آسانی داده ها را از یک صفحه به صفحه دیگری انتقال میدهد.

برنامه ویژوال استدیو خود را باز کنید و یک پروژه جدید از نوع وب فرم بسازید و سپس یک صفحه جدید به نام Index.aspx به پروژه خود اضافه کنید و مجددا صفحه دیگری به پروژه خود به نام Display اضافه کنید حال در صفحه Index  از جعبه ابزار خود یک TextBox و یک دکمه به صفحه اضافه کنید:

           <table>
                <tr>
                    <td>نام:</td>
                    <td>
                        <asp:TextBox ID="txtName" runat="server" /></td>
                </tr>
                <tr>
                    <td colspan="2">
                        <asp:Button ID="BtnSubmit" Text="انتقال به صفحه بعد" runat="server" PostBackUrl="~/Display.aspx" />
                    </td>
                </tr>
            </table>

در صفحه Display.aspx یک برچسب (label) از جعبه ابزار به صفحه اضافه میکنیم:

<div>  
    <asp:Label ID="LblName" runat="server"></asp:Label>  
</div>  

بنابراین در صفحه اول مایک textBox داریم که یک مقدار را به عنوان وروردی میپذیرد زمانی که ما رو دکمه انتقال کلیک میکنیم مقدار داخل textbox باید به صفحه  Display انتقال داده شود برای انجام این عمل در رویداد page load صفحه Display کد زیر را بنویسید:

        protected void Page_Load(object sender, EventArgs e)
        {
            if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
            {
                TextBox txtName = (TextBox)PreviousPage.FindControl("txtName");

                LblName.Text = "خوش آمدید " + txtName.Text;
                
            }
            else
            {
                Response.Redirect("Index.aspx");
            }
        }

در کد بالا در رویداد page load صفحه  display دو شرط داریم شرط اول چک میکند که درخواستی که در حال آمدن است (صفحه قبل ) وجود دارد به عبارت دیگر این شرط برای جلوگیری کردن ار بازکردن این صفحه به صورت مستقیم استفاده می شود اگرکاربر این کار را انجام دهد به صفحه index بر گشت داده میشود شرط دوم برای این است که آیا واقعا یک CrossPagePostBack اتفاق افتاده است برنامه را یا اجرای صفحه index شروع کنید:

حال یک نام را وارد کنید و روی دکمه انتقال به صفحه بعد کلیک کنید:(برنامه نویسان را وارد میکنیم)

فایل های ضمیمه