RadControl之RadAjax

RadAjax相关控件 

RadAjax方面包含四个个控件,RadAjaxManager、RadAjaxManagerProxy、RadAjaxPanel和RadAjaxLoadingPanel.

 

RadAjaxManager控件

  $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest(eventArgs);

  当RadAjaxManager1触发OnAjaxRequest的时候,会把eventArgs传入到事件的参数

  protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e)

  {    

  }

  这里e.Argument就会包含eventArgs; 

  还有一个类似的函数,多加了一个参数eventTarget,针对某个具体控件触发的Ajax刷新而传送对应的参数,非常赞!该方法描述如下

$find("<%=AjaxManager1.ClientID%>").ajaxRequestWithTarget(eventTarget, eventArgument)

eventTarget

The control that should raise postback event. Otherwise, if your control is in an INamingContainer, you should use the control's UniqueID.

eventArgument

This is an optional argument for the event.

   至于处于template之间的控件,可以在后台的隐藏代码里边,使用FIndControl找到该控件,再使用如下方法添加到RadAjaxManager中去   

ImageButton ImageButton1 = ((ImageButton)(((Control)(sender)).FindControl("ImageButton1")));
RadAjaxManager1.AjaxSettings.AddAjaxSetting

  在后台隐藏代码中,也可以用编程的方式去创建和使用RadAjaxManager,创建的时候要在Page_Inint的时候,添加   

protected void Page_Init(object sender, EventArgs e)
{
    RadAjaxManager manager = new RadAjaxManager();
    manager.ID = "RadAjaxManager1";
  this.Page.Items.Add(mamager.GetType,manager); this.Page.Form.Controls.Add(manager); }

  通过RadAjaxManager.GetCurrent(Page)获取RadAjaxManager控件实例    

  RadAjaxManager manager = RadAjaxManager.GetCurrent(Page);   

 

RadAjaxManagerProxy控件

   该控件其实是RadAjaxManager控件的一个复制版本,只不过没有client-side的事件、对象属性和方法。常常和RadAjaxManager在母版页一起组合使用。使用   如下代码进行获取母版页的RadAjaxManager。

  RadAjaxManager.GetCurrent(Page).ClientID 

RadAjaxPanel控件

   RadAjaxPanel会自动对被包含在内的控件进行Ajax刷新。ajaxRequestWithTarget与ajaxRequest用法参照RadAjaxManager。页面有多个RadAjaxPanel   的话,则可以在Page_PreRender里面进行区分

protected void Page_PreRender(object sender, EventArgs e)
{
    if (RadAjaxPanel1.IsAjaxRequest || RadAjaxPanel2.IsAjaxRequest)
    {
        TextBox1.Text = Label1.Text = TextBox2.Text = Label2.Text = Count.ToString();
    }
}

RadAjaxLoadingPanel控件

   进行Ajax刷新时候的载入图案。

注意事项:

  1. 在一个页面只能够使用一个RadAjaxManager控件,不能够在母版/主页使用一个RadAjaxManager,在子页/控件内部再使用一个RadAjaxManager。为解决这种困境,才出现了RadAjaxManagerProxy控件,该控件没有client-side object, methods 和 events。
  2. 虽然RadAjaxManager控件和RadAjaxPanel控件能在一起工作,但是强烈建议值使用其中的一种。如下,Button1的点击不会更新Lable1
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="Button1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadAjaxPanel" />
                    <telerik:AjaxUpdatedControl ControlID="Label1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxPanel ID="RadAjaxPanel" runat="server">
        <asp:Button ID="Button1" runat="server" Text="Update Button" />
        <asp:TextBox ID="TextBox1" runat="server" Text="Update me"></asp:TextBox>
    </telerik:RadAjaxPanel>
    <asp:Label ID="Label1" runat="server">Me too</asp:Label>
  3. 有一点要注意的是,在运用RadAjax之前,必须在页面包含有RadScriptManager,否则会出现如下错误。与此同时,RadScriptManager也必须出现 在RadAjax控件之前,才能实现Ajax局部刷新,如若不然,会是整个页面的刷新!

  The control with ID 'RadAjaxManager1' requires a ScriptManager on the page. The ScriptManager must appear before any controls that   need it.

转载于:https://www.cnblogs.com/Phoemamba/p/3572130.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值