在asp.net ajax中,UpdatePanel控件可以让大部分服务器端控件拥有AJAX能力,只需要把服务端拽到UpdatePanel中或在UpdatePanel上注册一下即可,下面通过示例来说明。
1.创建Web应用程序名为AspNetAjaxDemo的工程,如下图所示:
2.页面UpdatePanelDemo.aspx的前端代码如下:
<body>
<form id="form1" runat="server">
<h3>UpdatePanel控件基本用法</h3>
<asp:ScriptManager ID="ScriptManagerDemo" runat="server">
</asp:ScriptManager>
<div style="width:500px; padding:10px;">
<asp:UpdatePanel ID="UpdatePanelDemo" runat="server" RenderMode="Inline"
UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="txtInner" runat="server"></asp:TextBox>
<asp:Button ID="btnInnerAsych" runat="server" Text="内部异步"
/> <asp:Button ID="btnInnerSync"
runat="server" Text="内部同步" />
<asp:Label ID="lblMessage" runat="server"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnOuterAsyn" EventName="Click" />
<asp:PostBackTrigger ControlID="btnInnerSync" />
</Triggers>
</asp:UpdatePanel>
</div>
<asp:Button ID="btnOuterAsyn" runat="server" Text="外部异步"
/>
</form>
</body>
3.页面UpdatePanelDemo.aspx的后端代码:
namespace AspNetAjaxDemo
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnInnerAsych_Click(object sender, EventArgs e)
{
this.lblMessage.Text = String.Format("来自内部异步 - Hello {0}", this.txtInner.Text);
}
protected void btnOuterAsyn_Click(object sender, EventArgs e)
{
this.lblMessage.Text = String.Format("来自外部异步 - Hello {0}", this.txtInner.Text);
}
protected void btnInnerSync_Click(object sender, EventArgs e)
{
this.lblMessage.Text = String.Format("来自内部同步 - Hello {0}", this.txtInner.Text);
}
}
}
4.开始测试。
说明:
1)UpdatePanel可以其内部的服务器端控件自动获取AJAX能力,还可以将UpdatePanel外部的服务器控件获取AJAX能力,只需要将服务器端控件在UpdatePanel上注册一下即可完成,具体操作有两种:一种是手动添加以上页面中的btnOuterAsyn按钮的相关代码,或通过如下图片操作和设置来完成:
2)UpdatePanel还可以将内部的服务器端控件失去AJAX能力,完成常规的POSTBACK操作,同样只需要将外部的服务器控件在UpdatePanel上注册一下即可,如下图片所示。
本文转自 彭金华 51CTO博客,原文链接:http://blog.51cto.com/pengjh/591511