UpdatePanel控件,能使不具备Ajax能力的ASP.NET服务器控件都具有Ajax异步的功能。
UpdatePanel控件的常用属性和说明
属性 | 说明 |
---|---|
ContentTemplate | 内容模板,在该模板内放置控件、HTML代码 |
UpdateMode | UpdateMode共有两种模式:Always与Conditional,Always是每次Postback后,UpdatePanel会被连带更新;相反,Conditional只针对特定情况才被更新 |
RenderMode | 若RenderMode的属性为Block,则以<DIV>标签来定义程序段;若为Inline,则以<Span>标签来定义程序段 |
Triggers | 用于设置UpdatePanel的触发事件 |
UpdatePanel控件的Triggers包含两种触发器,一种是AsyncPostBackTrigger,用于引发拒不更新;另一种是PostBackTrigger,用于引发整页回送。
一个页面中有多个UpdatePanel控件时候,通过设置其UpdateMode为Conditional,可以避免相互之间的影响。
Triggers为AsyncPostBackTrigger时候,就可以实现局部更新。
局部更新事件的demo
Default.sapx
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div style="width:500px;height:150px;background-color:#FFDFEF;padding:5px 0px 0px 8px;">
事件1:<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<br />
<fieldset style="width:300px;height:60px">
<legend>局部更新</legend>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
时间2:<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</fieldset>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="显示时间" OnClick="Button1_Click" Width="55px"/>
</div>
</form>
default.cs
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
Label2.Text = DateTime.Now.ToString();
}
局部更新中使用javascript脚本的alert语句在客户端弹出对话框,请使用
ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(UpdatePanel), “scriptname”, “alert(‘操作成功’);”, true);