热门搜索 :
考研考公
您的当前位置:首页正文

UpdatePanel用法

来源:伴沃教育


Updatepanel控件用法

一个完整的UpdatePanel结构

ChildrenAsTriggers=\"true\" UpdateMode=\"Always\" RenderMode=\"Block\">

主要属性:

1,ChildrenAsTriggers : 内容模板内的子控件的回发是否更新本模板(和UpdateMode的

conditional有关)

2,UpdateMode : 内容模板的更新模式,有always和conditional俩种

(1)always:每次ajax PostBack或者普通的PostBack都能引起panel的更新

如果UpdatePanel设置为Always时,不能使用上面的 ChildrenAsTriggers属性,强行使用会报错,是updatepanel默认的更新模式,和设置trigger触发器没有直接的关系。

(2)conditional:只有满足如下某一条件时才更新panel的内容如果设置

UpdateMode=\"conditional\" ChildrenAsTriggers=\"false\"时候,子

控件不允许触发更新

1),当panel中的某个控件引发PostBack时

2), 当Panel指定的某个Trigger被引发时

3,RenderMode: 局部更新控件的呈现形式,俩中,Block(局部更新在客户端以div

形式展现)和Inline(局部更新以span的形式展现在客户端)

子元素:

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

2,Triggers: 局部更新的触发器,包括俩中:异步回发(AsyncPostBackTrigger) 用来实现局部更新。普通回发(PostBackTrigger)和普通的一养,不管是否使用了局部更新控件,都会引起页面的全部更新

例1

<%@ Page Language=\"C#\" AutoEventWireup=\"true\"

CodeFile=\"Default2.aspx.cs\" Inherits=\"Default2\" %>

无标题页

ID=\"UpdatePanel1\" runat=\"server\"

<% =DateTime.Now.ToString()%>

两个按钮都会触发UpdatePanel的更新。第二个按钮会显示页面整体刷新。第一个按钮只会看到updatepanel在刷新。

例2

<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"Default2.aspx.cs\" Inherits=\"Default2\" %>

无标题页

<% =DateTime.Now.ToString()%>

该例中。更新模式变为condition,并且childrenAsTriggers=false!updatapane控件内的事件不会引用updatapanel控件内容的刷新。

下面介绍下updatePanel的触发器Trigger

了解数据库的人应该对触发器这个概念比较清楚,Trigger对于UpdatePanel来说也是很关键的

开始简单介绍了UpdatePanel的俩中触发器asyncPostBackTrigger和PostBackTrigger的作用

这里用例子大概在稍微深入地介绍下:

1,普通回调触发器(PostBackTrigger)

PostBackTrigger主要针对UpdatePanel模板内的子控件,因为当子控件被触发时。它只会更新模版内的数据,模板外的控件不会发生变化.当需要更新全局内容的时候就可以通过PostBackTrigger触发器来实现页面的全部回调。

下面是简单例子:

<%@ Page Language=\"C#\" AutoEventWireup=\"true\"

CodeFile=\"Default2.aspx.cs\" Inherits=\"Default2\" %>

无标题页

runat=\"server\"

UpdateMode=\"Always\">

<% =DateTime.Now.ToString()%>


<% =DateTime.Now.ToString()%>

2,异步回调触发器(AsyncPostBackTrigger)

是实现局部更新的关键,在触发器内定义引起回发的控件和事件

<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"Default2.aspx.cs\" Inherits=\"Default2\" %>

无标题页

<% =DateTime.Now.ToString()%>


<% =DateTime.Now.ToString()%>

下面的例子也可以动态更新UpdatePanel的一些源代码:

具体例子就不写了下面 大概写点主要代码:

protected void Page_Load(object sender, EventArgs e)

{

//获取更新控件儿

UpdatePanel mapanel = UpdatePanel1;

//设置触发模式

mapanel.UpdateMode = UpdatePanelUpdateMode.Conditional;

//显示时间

Label1.Text = DateTime.Now.ToString();

//添加触发

AsyncPostBackTrigger tri = new AsyncPostBackTrigger();

tri.ControlID = \"Button2\";

tri.EventName = \"Click\";

mapanel.Triggers.Add(tri);

因篇幅问题不能全部显示,请点此查看更多更全内容

Top