AjaxManager(服务器端API)

1.特性

AjaxManager 公开了一组服务器端属性。

以下列表显示了一些最常用的。

  • EnableAJAX— 当您将该EnableAJAX属性设置为true(默认值)时,所有请求(RadAjaxPanel模板内的控件或由 管理的控件RadAjaxManager)都使用 AJAX 处理。如果此属性为false,则以传统回发方式处理请求。

  • EnableHistory— 当您将该EnableHistory属性设置为true(默认为false)时,即使使用 AJAX 也会启用浏览器历史记录。浏览器的前进后退按钮按预期工作(仅限 IE 浏览器)。

  • EnablePageHeadUpdate— 当您将该EnablePageHeadUpdate属性设置为true(默认值)时,<head>可以在 AJAX 更新期间修改 Page 元素。当您将控件初始化为不可见或在 AJAX 请求上动态加载控件时,您会发现此功能特别有用。

  • IsAjaxRequest— 将此属性设置true为当前请求通过 AJAXfalse时以及请求为标准回发时。在以下示例中,Button1已配置为启用 AJAX,警报将显示true. 单击Button2将显示false

//.net
<%-- 需要局部刷新所限定的标签和按钮 --%>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="Button1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Label1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
</telerik:RadAjaxManager>

<%-- 局部刷新 --%>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<%-- 整个页面刷新 --%>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" /> 
<%-- 创建刷新页面提示,该ResponseScripts属性的用法 --%>
<script type="text/javascript">
    setTimeout(function () { alert('this fires after the response'); }, 0); 
    Sys.Application.initialize();   
    Sys.Application.add_init(function () {
    $create(Telerik.Web.UI.RadAjaxManager, { "ajaxSettings": [{ InitControlID: "Button1", UpdatedControls: [{ ControlID: "Label1", PanelID: ""}]}], "clientEvents": { OnRequestStart: "", OnResponseEnd: "" }, "defaultLoadingPanelID": "", "enableAJAX": true, "enableHistory": false, "links": [], "styles": [], "uniqueID": "RadAjaxManager1" }, null, null, $get("RadAjaxManager1"));
});

//c#
        protected void Button1_Click(object sender, EventArgs e)
        {
            //标签填充内容
            Label1.Text = RadAjaxManager1.IsAjaxRequest.ToString();
            //弹窗提示内容
            RadAjaxManager1.Alert(RadAjaxManager1.IsAjaxRequest.ToString());

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            //弹窗提示内容
            RadAjaxManager1.Alert(RadAjaxManager1.IsAjaxRequest.ToString());
        }

2.方法

RadAjaxControl公开了一组服务器端方法。

1)静态方法:RadAjaxManager提供了一个静态方法,您可以使用该方法RadAjaxManager从代码隐藏中获取对当前页面上的实例的引用。

RadAjaxManager ram = RadAjaxManager.GetCurrent(Page);

2)实例方法

AjaxManager 和 AjaxPanel 都继承自RadAjaxControl,它引入了以下方法:

Alert— 在客户端上执行JavaScript alert()Alert()为将在警报中显示的文本采用单个字符串参数。

RadAjaxManager1.Alert("Please save your changes.");

FocusControl- 将焦点放在指定的控件上。FocusControl()采用单个参数,该参数可以是ID要关注的控件的参数,也可以是要关注的控件的对象引用。

RadAjaxManager1.FocusControl(Button1);  

 GetAjaxEventReference— 生成调用该ajaxRequest()方法的客户端代码。

   RadAjaxManager1.GetAjaxEventReference(Button1.ClientID);
// returns "$find("RadAjaxManager1").ajaxRequest("Button1");"

RaisePostBackEvent— 触发服务器端AjaxRequest事件并允许您将单个字符串参数传递给事件。AjaxRequest也可以由客户端ajaxRequest()函数触发。

    protected void Button1_Click(object sender, EventArgs e)
{
    RadAjaxManager1.RaisePostBackEvent(DateTime.Now.ToString());
}
protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e)
{    
    Label1.Text = e.Argument;
} 

Redirect— 将浏览器导航到另一个网页。该方法传递一个字符串参数,即要导航到的 URL。、

RadAjaxManager1.Redirect("https://www.telerik.com");

3.AjaxUpdatedControl 属性

在以声明方式或动态方式配置 Ajax 设置时,您可能需要为每个更新的控件设置以下一些属性:

  • LoadingPanelID— 获取或设置ID在 AJAX 期间将显示在更新的控件上的加载面板。

  • UpdatePanelHeight- 确定环绕更新控件的 AJAX 面板的高度。当您需要为更新控件的父级设置 100% 高度时很有用。

  • UpdatePanelRenderMode— 确定 AJAX 面板的渲染模式。

演示如何设置AjaxUpdatedControl属性:

//.NET前端
<%-- 被更新的控件写法一 --%>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
     <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="Button1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="RadAjaxLoadingPanel1"
                    UpdatePanelHeight="200px" UpdatePanelRenderMode="Inline" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>

//C#后端
        protected void Page_Load(object sender, EventArgs e)
        {
            //被更新的控件写法二
            //按钮控制
            AjaxSetting ajaxSetting = new AjaxSetting();
            ajaxSetting.AjaxControlID = "Button1";

            //页面更新控制
            AjaxUpdatedControl updatedControl = new AjaxUpdatedControl();
            updatedControl.ControlID = "Panel1";
            updatedControl.LoadingPanelID = "RadAjaxLoadingPanel1";
            updatedControl.UpdatePanelHeight = Unit.Pixel(200);
            updatedControl.UpdatePanelRenderMode = UpdatePanelRenderMode.Inline;

            ajaxSetting.UpdatedControls.Add(updatedControl);

            RadAjaxManager1.AjaxSettings.Add(ajaxSetting);
        }

<%-- 定义页面加载样式 --%>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default">
</telerik:RadAjaxLoadingPanel>
<%-- 定义一个按钮 --%>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<%-- 定义一个面板 --%>
<asp:Panel ID="Panel1" runat="server">
    <asp:Label runat="server" ID="Lable1" ></asp:Label>
</asp:Panel>

4.活动

OnAjaxRequest

该事件在由客户端函数或服务器端方法AjaxRequest触发时发生。

示例演示了AjaxRequest来自客户端和服务器的触发。还定义了一个 HTML 输入按钮和一个标准 ASP.NET 按钮。HTML  input按钮触发一个调用客户端的函数ajaxRequest()。ASP.NET 按钮触发一个服务器端OnClick事件,该事件又调用该RaisePostBackEvent()方法。

//.NET
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
</telerik:RadAjaxManager>
<%-- 响应客户端点击input --%>
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">
        function clientClick() {
            var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>");
            ajaxManager.ajaxRequest("client");
        }
    </script>
</telerik:RadCodeBlock>
        <div>
    <%-- 客户端就是请求一些服务的一方,服务端就是响应一些
        服务请求的一方,客户端是调用方,服务端是被调用方。 --%>
    <%-- ASP.NET按钮,触发一个服务器端Onclick事件, --%>
    <asp:Button ID="btnServer" runat="server" Text="Make server AjaxRequest" OnClick="btnServer_Click" />
    <%-- HTML input按钮,触发一个调用客户端的函数ajaxRequest() --%>
    <input id="btnClient" type="button" value="Make client AjaxRequest" onclick="clientClick();" />
        </div>

//C#
        protected void btnServer_Click(object sender, EventArgs e)
        {
            RadAjaxManager1.RaisePostBackEvent("server");
        }

        protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
        {
            RadAjaxManager1.Alert("AjaxRequest raised from the " + e.Argument);
        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值