浅谈UpdatePanel

article/2025/11/7 0:20:50

      这是我以前刚学习asp.net ajax的时候总结的,如果有什么错误的地方,请大家指出,以便我能早日改正。

 

    1.  作用:   UpdatePanel控件用来控制页面的局部更新,这些更新依赖于ScriptManagerEnablePartialRendering属性,如果此属性设为false,则局部更新将失去作用。

   2.基本结构: 

ContractedBlock.gif ExpandedBlockStart.gif Code
1<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="always" RenderMode="block">
2   <ContentTemplate>
3</ContentTemplate>
4   <Triggers>
5       <asp:AsyncPostBackTrigger ControlID="" EventName="" />
6       <asp:PostBackTrigger ControlID="" /> 
7   </Triggers>    
8 </asp:UpdatePanel>
9

   3.主要属性:

名称

意义

ChildrenAsTriggers

表示内容模板内的子控件的回发是否更新本模板。

UpdateMode

表示内容模板的更新模式,一般分为AlwaysConditional.

RenderMode

表示局部更新控件的呈现形式,一般有两种:BlockInline,当呈现模式选择Block时,局部更新控件在客户端以div形式展现;否则以span展现。

ContentTemplateContainer

使用编程手法添加UpdatePanel内容。

     4. 子元素:

名称

意义

ContentTemplate

是局部更新控件的内容模板,可以在其中添加任意控件。

Triggers

局部更新的触发器。包括两种触发器:一种是异步回发AsyncPostBackTrigger,可以实现局部更新;另一种PostBackTrigger和普通页面的回发一样,不管是否使用了局部更新控件,都会引起页面的全部更新。

     5.主要说下UpdateMode的两个属性值:

          1)     Always:默认值。表示UpdatePanel控件在每次回发时都会更新,这包含其它的UpdatePanel控件或此UpdatePanel控件以外的控件引起的回发。当UpdateMode属性设为Always时,此时不允许使用ChildrenAsTriggers属性,如果强行使用,页面运行时会出现错误。

          2)     ConditionalUpdatePanel控件在满足下列条件之一时引起回发:

                                   i.          引起回发的是UpdatePanel的触发器或子控件。

                                 ii.          显示的调用UpdatePanelupdate()方法。

                               iii.          当此UpdatePanel位于另一个UpdatePanel中,而上级的UpdatePanel更新时。

          3)     当同时设置UpdateModeConditionalChildrenAsTriggers=false时,不允许UpdatePanel的子控件更新模板内容。

 

     6. ContentTemplateContainer属性:如果想使用编程方法设置UpdatePanel的内容,需要创建一个UpdatePanel,并且添加内容到它的ContentTemplateContainer属性,而不能直接添加控件到它的ContentTemplate。如果想直接设置ContentTemplate,则需要写一个自定义的Template,并去实现位于System.Web.UI命名空间下的接口ITemplate

ContractedBlock.gif ExpandedBlockStart.gif Code
1    UpdatePanel up = new UpdatePanel();
2    up.ID = "UpdatePanel1";
3    up.UpdateMode = UpdatePanelUpdateMode.Conditional;
4    Label lbl = new Label();
5    lbl.ID = "Label1";
6    lbl.Text = "动态生成UpdatePanel控件";
7    up.ContentTemplateContainer.Controls.Add(lbl);
8    this.Page.Form.Controls.Add(up);
9

     

     7.  触发器:

1)       普通回调触发器PostBackTrigger:主要针对UpdatePanel模板内的子控件,因为当子控件被触发时,它只会更新模板内的数据,而模板外的数据并不发生变化。有些情况下需要更新全部的内容,这时就可以通过此触发器来实现页面的全面回调。

2)   异步回调触发器AsyncPostBackTrigger:是实现局部更新的关键触发器。   在触发器内定义引起回发的控件和事件。ControlID属性指的是引起回发的控件ID;EventName属性指的是引起回发的控件事件。

 

8.     用编程的方法控制UpdatePanel的更新(此时的UpdateModeconditional

1)     实现:可以通过ScriptManagerRegisterAsyncPostBackControl()方法注册一个异步提交控件,并且调用UpdatePanelUpdate()方法进行更新。

2)     适用于:

       i.          提交的控件位于UpdatePanel外,而它所要更新的控件位于UpdatePanel里。此时提交,刷新整个页面。

   ii.          提交的控件与所要刷新的控件位于两个不同并且没有关系的UpdatePanel中。此时提交,无反应。

 3)  示例:Label控件显示当前时间,Button刷新Label的显示时间

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 1protected void Page_Load(object sender, EventArgs e)
 2ExpandedBlockStart.gifContractedBlock.gif    {
 3        if (!Page.IsPostBack)
 4ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 5            lbl.Text = DateTime.Now.ToString();
 6        }

 7        ScriptManager1.RegisterAsyncPostBackControl(btn);
 8    }

 9
10
11protected void btn_Click(object sender, EventArgs e)
12ExpandedBlockStart.gifContractedBlock.gif    {
13        lbl.Text = DateTime.Now.ToString();
14        UpdatePanel1.Update();
15    }

16

 

 

9.     UpdatePanel嵌套:

1)     UpdatePanel可以嵌套使用,即在一个UpdatePanelContentTemplate中还可以放入一个或多个UpdatePanel控件。

2)     外层UpdatePanel更新时,它的子UpdatePanel都随着更新。

3)     里层的UpdatrePanel更新时:如果外层UpdatePanelUpdateMode属性为Always时,内外层全部更新;如果UpdateMode属性为conditional,则只更新里层的UpdatePanel,外层的不随着更新。

 

10.     母版页更新内容页的UpdatePanel:提交控件位于母版页中,而被更新的控件位于内容页的UpdatePanel中。利用ContentPlaceHolderFindControl()方法,找到内容页的UpdatePanel,然后再使用Update()方法. 

ContractedBlock.gif ExpandedBlockStart.gif Code
1 ((UpdatePanel)ContentPlaceHolder1.FindControl("UpdatePanel1")).Update();
2或:
3UpdatePanel up = ContentPlaceHolder1.FindControl("UpdatePanel1"as UpdatePanel;
4up.Update();
5

 

  注意:此时的UpdatePanelUpdateMode方法必须为conditional,否则程序报错。

 

 

转载于:https://www.cnblogs.com/Tiramisu/archive/2009/02/05/1384914.html


http://chatgpt.dhexx.cn/article/nWJSXwro.shtml

相关文章

UpdatePanel 控件简介

UpdatePanel 控件简介 全部折叠全部展开 代码&#xff1a;全部 代码&#xff1a;多种 代码&#xff1a;Visual Basic 代码&#xff1a;C# 代码&#xff1a;Visual C 代码&#xff1a;F# 代码&#xff1a;JScript UpdatePanel 控件简介 在本教程中&#xff0c;您将使用两…

ScriptManager updatepanel

在项目开发中&#xff0c;遇到了一个ajax更新问题&#xff0c;母版上有个通知区域&#xff08;通知区域为ajax定时更新&#xff08;updatepanel&#xff09;&#xff09;&#xff0c;上面有需要显示的几列信息&#xff0c;如最新文章数&#xff0c;批阅数&#xff0c;FTP受信状…

使用 UpdatePanel

1 概述 ASP.NET UpdatePanel 控件能让你创建丰富的、以客户为中心的 Web 应用程序。使用 UpdatePanel 控件&#xff0c;可以刷新选择的页面部分而不是使用回发来刷新整个页面&#xff0c;这就像是执行了一个局部页面更新一样。包含一个 ScriptManager 和一个或多个 UpdatePanel…

UpdatePanel控件

ASP.NET UpdatePanel控件可用于生成功能丰富、以客户端为中心的Web应用程序。通过使用UpdatePanel控件&#xff0c;可以在回发期间刷新网页的选定部分而不是刷新整个网页。这称为执行部分页更新。包含一个ScriptManager控件和一个或多个UpdatePanel控件的ASP.NET网页&#xff0…

ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)

UpdatePanel可以用来创建丰富的局部更新Web应用程序&#xff0c;它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件&#xff0c;其强大之处在于不用编写任何客户端脚本&#xff0c;只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通…

UpdatePanel的用法及 UpdatePanel与JS冲突的解决方法

UpdatePanel的用法 ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果。其中的UpdatePanel就是设置页面中异 步局部更新区域&#xff0c;它必须依赖于ScriptManager存在&#xff0c;因为ScriptManger控件提供了客户端脚本生成与管理UpdatePanel的功 能。…

Java定时器 @Scheduled注解的使用

1.定时器Scheduled简介 Scheduled注解可以用于做定时任务&#xff0c;再方法上加上Scheduled注解&#xff0c;可以将这个方法定义为一个任务发放&#xff0c;可以搭配cron表达式进行任务的控制。 开启定时任务时在类上加注解 EnableScheduling 2.cron表达式的用法 1.按顺序…

java定时器的实现_java定时器实现总结

前言&#xff1a;Java定时器目前主要有3种实现方式&#xff1a;JDK组件&#xff0c;Spring Task&#xff0c;Quartz框架。 1. JDK组件 (1) java.util.TimerTask MyTimerTask.java&#xff1a; public class MyTimerTask extendsTimerTask { Overridepublic voidrun() { System.…

简单实现Java定时器

✨✨hello&#xff0c;愿意点进来的小伙伴们&#xff0c;你们好呐&#xff01; &#x1f43b;&#x1f43b;系列专栏&#xff1a;【JavaEE】 &#x1f432;&#x1f432;本篇内容&#xff1a;自己实现Java定时器 &#x1f42f;&#x1f42f;作者简介:一名现大二的三非编程小白&…

java 定时器框架_java定时器

java定时器 什么是Java定时器&#xff1f; Java 定时器就是在给定的间隔时间执行自己的任务; Java实现定时器有以下几种: 通过Timer来实现定时任务 Timer 是来自 java.util.Timer 指定时间执行任务 /** * author spp * date 2020-10-14 09:04 **/ public class TimerTest { pub…

Java定时器Timer的使用

目录 一、Timer常用方法 1、在某个时间点执行一次任务 2、在某个时间点执行一次任务&#xff0c;接着每隔X秒执行一次任务 3、在N秒后执行一次任务 4、在N秒后执行一次任务&#xff0c;接着每隔X秒执行一次任务 二、Timer的多任务模式 一、Timer常用方法 Timer应用场景&a…

Java定时器选择

java计时器和死循环哪个好&#xff1f;哪个建议使用&#xff1f; 计时器性能更好&#xff0c;但是写起来稍微复杂一点。如果是非常短暂的延迟&#xff0c;用死循环也未尝不可。一般来说能不用死循环的尽量不用死循环&#xff01;如果你使用的是JDK1.5以上的&#xff0c;可以使…

9.java定时器

java定时器 java的定时器有四种实现方式 使用java的timer类&#xff0c;这种方式可以灵活的控制定时器的开启关闭使用线程和线程池的方法&#xff0c;这种方式对于关闭定时器是不优雅的&#xff0c;甚至可能出错使用spring注解来启动定时任务&#xff0c;使用起来简单&#xff…

Java当中的定时器

目录 一、什么是定时器 二、Java当中的定时器 ①schedule()方法&#xff1a; ②TimerTask ​编辑 ③delay 三、实现一个定时器 前提条件: 代码实现: ①确定一个“任务”&#xff08;MyTask)的描述&#xff1a; ②schedule方法&#xff1a; ③需要一个计时器 属性…

【Java定时器】: Java创建定时器的三种方式(详细讲解)

Java创建定时器的三种方式 第一种&#xff0c;常见的thread&#xff0c;创建一个Thread让他让循环里一直执行&#xff0c;通过 Thread.sleep 来达到 定时任务的效果。 栗子如下&#xff1a; public static void main(String[] args) {final long timeTnterval 1000;Runnable …

Java定时器

目录 一、认识定时器 1、什么是定时器 2、标准库的定时器 二、模拟实现定时器 1、描述定时器中的任务 2、管理多个任务 3、扫描线程 4、优化 5、最终代码 一、认识定时器 1、什么是定时器 定时器是实际开发中常用的一个重要组件&#xff0c;类似于我们生活中的“闹钟…

matlab画图函数之plot【matlab图行绘制一】

plot函数 plot(x,y,’–gs’,‘LineWidth’,2,‘MarkerSize’,10,‘MarkerEdgeColor’,‘b’,‘MarkerFaceColor’,[0.5,0.5,0.5]) plot函数是最基本、最常用的绘图函数&#xff0c;用于绘制线性二维图。有多条曲线时&#xff0c;循环使用由坐标轴颜色顺序属性定义的颜色&…

Matlab画图线型、符号及颜色设置

1. matlab 中线条的主要属性 Color: 颜色LineStyle: 线型LineWidth: 线宽Marker: 标记点的形状MarkerFaceColor: 标记点填充颜色MarkerEdgeColor: 标记点边缘颜色MarkerSize: 标记点大小 2. 各种属性的名称 2.1 线型 -Solid line (default) – Dashed line : Dotted line …

matlab 画图基本

内容安排如下&#xff1a; 1、基本绘制&#xff08;图画大小、图形名称、图画背景、坐标轴名称、刻度范围、曲线颜色、坐标轴字体颜色等&#xff09;2、多条曲线&#xff08;plot hold on&#xff1b;plotyy&#xff1b;subplot&#xff1b;&#xff09;3、日期及时间轴绘图4、…

MATLAB画图详细教程

本文将详细介绍如何用matlab绘图并美化。 关于figure() 创建图窗窗口:figure() figure()的属性: Name:在标题栏显示的名称,接字符串,如Test Position:在电脑屏幕上的位置和大小,后接向量[left,bottom,width,height]也就是说指定了图窗的左下角位置,再向右+width、…