نحوه استفاده از Asp.Net AJAX PageMethod ها توسط ScriptManager

یکشنبه 1 شهریور 1394

در این مقاله نحوه استفاده از Asp.Net AJAX PageMethod ها توسط ScriptManager و AJAX را بررسی خواهیم نمود.

نحوه استفاده از Asp.Net AJAX PageMethod ها توسط ScriptManager

AJAX ScriptManager در Asp.NET به شما اجازه می دهد تا متدهای سمت سرور Asp.NET را سمت کاربر و بدون PostBack و با استفاده از PageMethod ها اجرا نمایید. این یک فراخوانی به صورت Ajax به سرور بوده اما به شما اجازه می دهد تا متدها و تابع ها را سمت سرور تعریف نمایید.

فعال کردن PageMethod ها

اولین کاری که لازم است شما انجام دهید این است که یک ASP.Net AJAX ScriptManager به صفحه اضافه کرده و مانند زیر، پروپرتی EnablePageMethods آن را True نمایید.

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>

 

ساختار HTML

<body style = "font-family:Arial; font-size: 10pt;direction: rtl;">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods = "true">
</asp:ScriptManager>
<div>
نام شما : 
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<input id="btnGetTime" type="button" value="نمایش زمان فعلی" onclick = "ShowCurrentTime()" />
</div>
</form>
    <a href="http://www.barnamenevisan.org">مرجع تخصصی برنامه نویسان</a>
</body>

همانطور که در بالا مشاهده کردید یک textbox برای این که کاربر بتواند نام خود را وارد نموده و یک button که متد JavaScript را برای گرفتن زمان فراخوانی می کند اضافه شده اند.

 

متدهای سمت کاربر

<script type="text/javascript">
function ShowCurrentTime() {
PageMethods.GetCurrentTime(document.getElementById("<%=txtUserName.ClientID%>").value, OnSuccess);
}
function OnSuccess(response, userContext, methodName) {
alert(response);
}
</script>

 

در بالا متد ShowCurrentTime توسط ASP.Net AJAX ScriptManager PageMethod به صورت Ajax ای اجرا شده و متد GetCurrentTime را اجرا می کند. این متد یک Username گرفته و یک رشته بر می گرداند.

 

متدهای سمت سرور

#C

 

    [System.Web.Services.WebMethod]
    public static string GetCurrentTime(string name)
    {
        return "Hello " + name +  Environment.NewLine + "زمان فعلی : "
            + DateTime.Now.ToString()+"می باشد.";
    }

 

متد بالا به راحتی یک پیام به همراه زمان فعلی که همان زمان سرور می باشد را بر می گرداند. مهمترین چیزی که مشاهده می شود تعریف متد به صورت Static است و همچنین این متد به صورت WebMethod تعریف شده است.

شکل زیر خروجی که کاربر پس از کلیک کردن مشاهده می کند را نمایش می دهد.

 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید