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刷新时候的载入图案。
注意事项:
<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>
有一点要注意的是,在运用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.
RadControl之RadAjax,布布扣,bubuko.com
原文:http://www.cnblogs.com/Phoemamba/p/3572130.html