توضیحات و دانلود

چگونه ایجاد کردن کنترل PostBack در ASP.Net
0 0
چگونه ایجاد کردن کنترل PostBack در ASP.Net

با سلام به کاربران عزیز در این مقاله، توضیح می دهیم که چگونه شناسه کنترل را  که پسوند را ایجاد می کند یعنی منبع پسوند در ASP.Net را ایجاد کنید

 کنترل های زیر را در نظر میگیریم :

1      Button

2      ImageButton

3      LinkButton

4     RadioButton

5      چک بکس

6      RadioButtonList

7      CheckBoxList

8      DropDownList

9      TextBox

همه کنترل ها دکمه را فشار می دهند و ImageButton از جاوا اسکریپت برای ایجاد پسورد استفاده می کند. برای فعال کردن postback در این کنترل ها، باید ویژگی AutoPostBack را به درستی تنظیم کنید.

 انجام عمل doPostBack در رویداد که باعث ایجاد پسورد می شودصورت میگیرد

عملکرد __ doPostBack در منبع صفحه نمایش قابل مشاهده نیست تا زمانی که یک LinkButton قرار دهید یا AutoPostBack را به درستی برای هر یک از کنترل های مورد بحث انتخاب کنید.

<script type = "text/javascript">

function __doPostBack(eventTarget, eventArgument) {

if (!theForm.onsubmit || (theForm.onsubmit() != false)) {

    theForm.__EVENTTARGET.value = eventTarget;

    theForm.__EVENTARGUMENT.value = eventArgument;

    theForm.submit();

}

}

</script> 

تابع __doPostBack به سادگی دو شناسه زیر را در دو فیلد پنهان ذخیره می کند

1      eventTarget - نام کنترل که باعث ایجاد پسورد می شود

2      eventArgument - استدلال به سرور ارسال می شود.

در دو فیلد پنهان که تنها زمانی ظاهر می شوند که AutoPostBack روی درست تنظیم شده باشد یا LinkButton روی صفحه قرار می گیرد.

<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />

<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />

برای دریافت شناسه کنترل که پسوند کد را ایجاد میکند، همانطور که در زیر آمده است

C #

if (IsPostBack)

{

    string CtrlID = string.Empty;

    if (Request.Form["__EVENTTARGET"] != null &&

        Request.Form["__EVENTTARGET"] != string.Empty)

    {

        CtrlID = Request.Form["__EVENTTARGET"];

    }

}

VB.Net

If IsPostBack Then

  Dim CtrlID As String = String.Empty

  If Request.Form("__EVENTTARGET") IsNot Nothing And

     Request.Form("__EVENTTARGET") <> String.Empty Then

      CtrlID = Request.Form("__EVENTTARGET")

  Else

End If

کد بالا فقط برای کسانی که از تابع __doPostBack استفاده می کنند، کار می کند

برای دکمه و ImageButton شما باید از روش زیر استفاده کنید

<asp:Button ID="Button1" runat="server" Text="Button"

  OnClientClick = "SetSource(this.id)" />

 

<asp:ImageButton ID="ImageButton1" runat="server"

OnClientClick = "SetSource(this.id)" />

در ویژگی دکمه OnClientClick  و ImageButton  از عملکرد جاوا اسکریپت SetSource ارتباط می گیریم

<script type = "text/javascript">

    function SetSource(SourceID)

    {

        var hidSourceID =

        document.getElementById("<%=hidSourceID.ClientID%>");

        hidSourceID.value = SourceID;

    }

</script>

تابع فوق، هنگامی که Control کلیک می شود، شناسه کنترل را در قسمت پنهان ذخیره می کند

<asp:HiddenField ID="hidSourceID" runat="server" />

در حال حاضر در سمت سرور می توانیم شناسه را به روش زیر دریافت کنیم

C #

if (IsPostBack)

{

    string CtrlID = string.Empty;

    if (Request.Form[hidSourceID.UniqueID] != null &&

        Request.Form[hidSourceID.UniqueID] != string.Empty)

    {

        CtrlID = Request.Form[hidSourceID.UniqueID];

    }

}

VB.Net

If IsPostBack Then

   Dim CtrlID As String = String.Empty

   If Request.Form(hidSourceID.UniqueID) IsNot Nothing And

    Request.Form(hidSourceID.UniqueID) <> String.Empty Then

     CtrlID = Request.Form(hidSourceID.UniqueID)

   End If

End If

تابع کامل در زیر آمده است.  شناسه کنترل را نشان می دهیم که باعث ایجاد Postback با استفاده از هشدار جاوا اسکریپت شده است.

C #

protected void Page_Load(object sender, EventArgs e)

{

    if (IsPostBack)

    {

        string CtrlID = string.Empty;

        if (Request.Form["__EVENTTARGET"] != null &&

            Request.Form["__EVENTTARGET"] != string.Empty)

        {

            CtrlID = Request.Form["__EVENTTARGET"];

        }

        else

        {

            //Buttons and ImageButtons

            if (Request.Form[hidSourceID.UniqueID] != null &&

                Request.Form[hidSourceID.UniqueID] != string.Empty)

            {

                CtrlID = Request.Form[hidSourceID.UniqueID];

            }

        }

        ClientScript.RegisterStartupScript(this.GetType(),

            "sourceofpostback",

            "<script type='text/javascript'>" +

            "window.onload=new function(){" +

            "alert('Control ID " + CtrlID +

" caused postback.');}" +

            "</script>");

    }

}

 VB.Net

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

  If IsPostBack Then

     Dim CtrlID As String = String.Empty

     If Request.Form("__EVENTTARGET") IsNot Nothing And _

        Request.Form("__EVENTTARGET") <> String.Empty Then

        CtrlID = Request.Form("__EVENTTARGET")

     Else

        'Buttons and ImageButtons

        If Request.Form(hidSourceID.UniqueID) IsNot Nothing And _

           Request.Form(hidSourceID.UniqueID) <> String.Empty Then

            CtrlID = Request.Form(hidSourceID.UniqueID)

        End If

     End If

     ClientScript.RegisterStartupScript(Me.GetType(), _

     "sourceofpostback", _

     "<script type='text/javascript'>" _

     & "window.onload=new function(){" _

     & "alert('Control ID " & CtrlID _

     & " caused postback.');}" _

     & "</script>")

  End If

End Sub

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :