AjaxManager(客户端API)

1.公共API

1)ajaxRequest(参数)

要触发对服务器的回发或 AJAX 请求,请使用该ajaxRequest(arguments)函数启动通用 AJAX 请求。事件目标默认为RadAjaxPanel 或者 RadAjaxManager实例。这些arguments是控件在提出请求时使用的参数。

2)AJAX请求

当在ajaxRequest客户端调用该函数时,AjaxRequest可以在服务器上的事件处理程序中处理它

 如何在客户端执行 AJAX 请求并在服务器上处理它。

//.net
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">

        function InitiateAjaxRequest(arguments) {
            var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>");
            ajaxManager.ajaxRequest(arguments);
        }
    </script>
</telerik:RadCodeBlock>

//c#
private void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
    //处理通用AJAX请求的代码
}  

如何将 AjaxManager 设置为更新 TextBox 控件的 AJAX 启动器。

<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="TextBox1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>

两种按钮事件:

//方案一
<%-- 系统按钮,名为AjaxButton,在客户端执行 AJAX 请求并在服务器上处理它 --%>
<input type="button" onclick="AjaxRequestButton(); return false;" 
    value="AjaxButton" />
<telerik:RadCodeBlock ID="cb1" runat="server">
    <script type="text/javascript">
        /*ajaxRequest(arguments)函数启动通用AJAX请求*/
        function AjaxRequestButton(arguments) {
            var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>");
            ajaxManager.ajaxRequestWithTarget('<%= Button1.UniqueID %>', '');
        }
    </script>
</telerik:RadCodeBlock>

//方案二
//.net
<%-- 如何将 AjaxManager 设置为更新 TextBox 控件的 AJAX 启动器 --%>      
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
<asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
<asp:ScriptManager ID="ScriptManager" runat="server" />
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="Button1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="TextBox1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>

//c#
 //按钮事件,响应按钮请求
        protected void Button1_Click(object sender, EventArgs e)
        {
            TextBox1.Text = DateTime.Now.ToLongTimeString();
        }

2.RadAjaxManager 对象

如何使用get_ajaxSettings配置

<script type="text/javascript">
    function myFunction() {
        var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>");
        var settings = ajaxManager.get_ajaxSettings();
        var settingsList = '';

        for (setting in settings) {
            var initiatingControl = settings[setting].InitControlID;
            var controls = settings[setting].UpdatedControls;
            var controlList = '';

            for (control in controls) {
                controlList += ' ' + controls[control].ControlID;
            }
            settingsList += '\nInitiated by: ' + initiatingControl + '\nUpdated Controls: ' + controlList;
        }
        alert(settingsList);
    }
</script>

3.活动

1)客户端事件概述

AjaxManager 和 AjaxPanel 都来自RadAjaxControl实例。

RadAjaxControl引入了AjaxClientEvents包含以下事件的属性:
       OnRequestStart----- 启动对服务器的请求时触发。
       OnResponseEnd-----在处理来自服务器的响应时触发。

如何在请求开始和结束时显示消息。

<script type="text/javascript">
    function requestStart(sender, eventArgs) {
        alert('Request start');
    }
    function responseEnd(sender, eventArgs) {
        alert('Response complete');
    }
</script>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <ClientEvents OnRequestStart="requestStart" OnResponseEnd="responseEnd" />
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="Button1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="TextBox1"></telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>

2)OnRequestStart

OnRequestStart启动对服务器的请求时,将调用客户端事件处理程序。

使用以下方法将两个参数传递给事件处理程序:

  • sender— 客户端RadAjaxManagerRadAjaxPanel对象的实例。

  • eventArgs——提供以下方法:

    • set_cancel()— 允许或阻止 AJAX 请求继续。调用set_cancel(true)会阻止请求继续。

    • get_eventTarget()— 获取UniqueID已提出请求的元素。

    • get_eventArgument()— 获取初始 AJAX 请求中传递的字符串。

    • get_eventTargetElement()— 获取引发 AJAX 请求的客户端对象的实例。您可以迭代每个设置并检索启动控件id和另一个表示更新控件的对象数组。

    • get_ajaxSettings()— 返回一个对象数组,这些对象表示 AjaxManager 当前的 AjaxManager 配置或 AjaxPanel 的更新控件。

    • get_enableAjax()set_enableAjax()— 获取或设置是否执行 AJAX 请求。set_enableAjax(false)导致使用标准回发执行请求。

发起请求的控件:

<script type="text/javascript">
    function requestStart(sender, eventArgs) {
        alert('Request start initiated by: ' + eventArgs.get_eventTarget());
    }
</script>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <ClientEvents OnRequestStart="requestStart" />
</telerik:RadAjaxManager>

3) OnResponseEnd

OnResponseEnd从服务器接收到请求时调用客户端事件处理程序。活动不能取消。

使用以下方法将两个参数传递给事件处理程序:

  • sender—客户端RadAjaxManager/RadAjaxPanel对象的实例。

  • eventArgs——提供以下方法:

    • get_eventTarget()— 获取UniqueID已提出请求的元素。

    • get_eventArgument()— 获取初始 AJAX 请求中传递的字符串。

    • get_eventTargetElement()— 获取引发 AJAX 请求的客户端对象的实例。

发起请求的控件:

<script type="text/javascript">
    function responseEnd(sender, eventArgs) {
        alert('Response end initiated by: ' + eventArgs.get_eventTarget());
    }
</script>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <ClientEvents OnResponseEnd="responseEnd" />
</telerik:RadAjaxManager>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值