1.RadAjaxPanel 之间的交互
处理来自一个RadAjaxPanel的 AJAX 请求,以及如何更新的RadAjaxPanel发起 AJAX 请求。
//.net
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager>
<%-- 面板一,包含一个按钮,一个标签,一个文本框 --%>
<h3>Panel1</h3>
<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server">
<asp:Button ID="btnIncrease" OnClick="btnIncrease_Click" Text="增加" runat="server"/>
<asp:Label ID="Lable1" runat="server">0</asp:Label>
<asp:TextBox ID="TextBox1" Text="0" runat="server"></asp:TextBox>
</telerik:RadAjaxPanel>
<%-- 面板二,包含内容同上 --%>
<h3>Panel2</h3>
<telerik:RadAjaxPanel ID="RadAjaxPanel2" runat="server">
<asp:Button ID="btnDecrease" OnClick="btnDecrease_Click" Text="减少" runat="server"/>
<asp:Label ID="Lable2" runat="server">0</asp:Label>
<asp:TextBox ID="TextBox2" Text="0" runat="server"></asp:TextBox>
</telerik:RadAjaxPanel>
//c#
protected void Page_PreRender(object sender, EventArgs e)
{
if (RadAjaxPanel1.IsAjaxRequest || RadAjaxPanel2.IsAjaxRequest)
{
TextBox1.Text = Label1.Text = TextBox2.Text = Label2.Text = Count.ToString();
}
}
public int Count
{
get
{
return this.ViewState["Count"] == null ? 0 : (int)this.ViewState["Count"];
}
set
{
this.ViewState["Count"] = value;
}
}
protected void btnIncrease_Click(object sender, System.EventArgs e)
{
Count++;
RadAjaxPanel1.ResponseScripts.Add(String.Format("$find('{0}').ajaxRequest();", RadAjaxPanel2.ClientID));
}
protected void btnDecrease_Click(object sender, System.EventArgs e)
{
Count--;
RadAjaxPanel2.ResponseScripts.Add(String.Format("$find('{0}').ajaxRequest();", RadAjaxPanel1.ClientID));
}
2.重定向到新页面
从服务器重定向到新页面有两种基本类型:
-
Response.Redirect() - 标准的 ASP.NET 重定向方法。
-
生成设置window.location.href的 JavaScript 。
如果Response.Redirect()
对您不起作用(例如,如果在部分渲染期间调用),您可以通过andRadAjaxControl.Redirect()
公开的服务器方法使用脚本生成方法。RadAjaxManager
RadAjaxPanel
使用RadAjaxManager Redirect()
RadAjaxManager1.Redirect("http://www.google.com/");
//or
RadAjaxManager.GetCurrent(Page).Redirect("http://www.google.com/");
使用RadAjaxPanel Redirect()
RadAjaxPanel1.Redirect("http://www.google.com/");
3.AJAX 更新后执行自定义 Javascript 代码
使用RadAjaxPanel或RadAjaxManager的
ResponseScripts属性。
//单击 Button 时弹出警报
RadAjaxPanel1.ResponseScripts.Add(string.Format("alert('Hello from the server! Server time is {0}');", DateTime.Now.ToLongTimeString()));
//使用ScriptManager类的RegisterStartupScript静态方法
string script = string.Format("alert('Hello from the server! Server time is {0}');", DateTime.Now.ToLongTimeString());
ScriptManager.RegisterStartupScript(Page, typeof(Page), "myscript", script, true);