UpdatePanel控件

ASP.NET UpdatePanel控件可用于生成功能丰富、以客户端为中心的Web应用程序。通过使用UpdatePanel控件,可以在回发期间刷新网页的选定部分而不是刷新整个网页。这称为执行部分页更新。包含一个ScriptManager控件和一个或多个UpdatePanel控件的ASP.NET网页,不需要使用自定义客户端脚本即可自动参与部分页更新。

启用部分页更新:

UpdatePanel控件在网页中需要ScriptManager控件,默认情况下,将启动部分页更新,因为ScriptManager控件的EnablePartialRendering属性默认值为true。最简单的例子如下,当单击Button控件时,将刷新当前时间。

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
	<ContentTemplate >
        	<%= DateTime.Now %>  
                <asp:Button ID="Button2" runat="server" Text="Button" />
        </ContentTemplate>
</asp:UpdatePanel>

由上面的例子我们也可以看出,UpdatePanel控件内容是通过<ContentTemplate></ContentTemplate>标记来实现的。

控件主要属性:

1.ChildrenAsTriggers:内容模板内的子控件的回发是否更新本模板(和UpdateMode的Conditional有关)

2.UpdateMode:内容模板的更新模式,有Always和Conditional两种。

(1)Always:网页的任何地方发生的每个回发都会导致 UpdatePanel 控件内容进行更新。其中包括其它UpdatePanel 控件内的控件引发的异步回发,以及不在 UpdatePanel 控件内的控件引发的回发。

(2)Conditional:只有满足如下某一条件时才更新:

a.当回发由 UpdatePanel 控件的触发器引起时。

b.当显式调用 UpdatePanel 控件的 Update 方法时。

c.当 UpdatePanel 控件嵌套在另一个 UpdatePanel 控件内并更新父面板时。

如果 ChildrenAsTriggers 属性设置为 false 且 UpdateMode 属性设置为 Always,则将引发异常。此 ChildrenAsTriggers 属性仅在 UpdateMode 属性设置为 Conditional 时使用。

3.RenderMode:局部更新控件的呈现形式,包括Block(以div形式展现)和Inline(以span形式展现)。


子元素:

1.ContentTemplate:局部更新控件的内容模板,可以在其中添加任何控件。

2.Triggers:局部更新的触发器,包括两种,分别为AsyncPostBackTrigger和PostBackTrigger。AsyncPostBackTrigge用来指定某个服务器端控件以及其将触发的服务器端事件作为该UpdatePanel的异步更新触发器,它需要设置的属性有控件ID和服务端控件的事件;PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送。

下面来一个小例子:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers ="false"
        UpdateMode ="Conditional"  >
    <ContentTemplate >
        <%= DateTime.Now %>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </ContentTemplate>
    <Triggers >
        <asp:AsyncPostBackTrigger ControlID ="Button2" />
    </Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" >
    <ContentTemplate >
        <%= DateTime.Now %>
        <asp:Button ID="Button2" runat="server" Text="Button" />
    </ContentTemplate>
</asp:UpdatePanel>

效果就是下图所示:


在这个例子中,由于第一个UpdatePanel控件的ChildrenAsTriggers值为false,并且UpdateMode值为Conditional,所以Button1不能对第一个时间进行更新,只能对第二个时间进行更新。由于在第一个UpdatePanel控件中使用触发器绑定了Button2,所以Button2的单击就可以更新第一个时间,当然,Button2在第二个UpdatePanel控件中一定可以更新第二个时间(这里说的更新都只是部分更新,并不会对整个页面进行提交)。



UpdatePanel控件就简单介绍到此,是不是很简单?感谢您的阅读~



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值