UpdatePanel控件也是Ajax里用得最多的控件之中的一个,UpdatePanel控件是用来局部更新网页上的内容,网页上要局部更新的内容必须放在UpdatePanel控件里,他必须和上一次说的ScriptManager控件一起使用。如今来看UpdatePanel的属性

UpdatePanel重要的属性例如以下:



属性



说明



ChildrenAsTriggers



当UpdateMode属性为Conditional时,UpdatePanel中的子控件的异步回送是否会引发UpdatePanle的更新。



RenderMode



表示UpdatePanel终于呈现的HTML元素。Block(默认)表示<div>,Inline表示<span>



UpdateMode



表示UpdatePanel的更新模式,有两个选项:Always和Conditional。Always是无论有没有Trigger,其它控件都将更新该UpdatePanel,Conditional表示仅仅有当前UpdatePanel的Trigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是server端调用Update()方法才会引发更新该UpdatePanel。



ChildrenAsTriggers:当UpdateMode属性为Conditional时,UpdatePanel中的子控件的异步回送是否会引发UpdatePanle的更新。 RenderMode:表示UpdatePanel终于呈现的HTML元素。Block(默认)表示<div>,Inline表示<span> UpdateMode:表示UpdatePanel的更新模式,有两个选项:Always和Conditional。Always是无论有没有Trigger,其它控件都将更新该UpdatePanel,Conditional表示仅仅有当前UpdatePanel的Trigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是server端调用Update()方法才会引发更新该UpdatePanel。

Contente Template:用来定义UpdatePanel的内容

Triggers:分别为AsyncPostBackTrigger和PostBackTrigger

AsyncPostBackTrigge用来指定某个server端控件以及其将触发的server端事件作为该UpdatePanel的异步更新触发器,它须要设置的属性有控件ID和服务端控件的事件;PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送

如今我们来做一个简单的实例:


UpdatePanel的用法_服务端 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

UpdatePanel的用法_服务端 <html xmlns="http://www.w3.org/1999/xhtml">

UpdatePanel的用法_服务端 <head runat="server">

UpdatePanel的用法_服务端 <title>Untitled Page</title>

UpdatePanel的用法_服务端 <style type="text/css">

UpdatePanel的用法_服务端_08 UpdatePanel的用法_sql_09 body UpdatePanel的用法_html_10 { background-attachment:fixed;

UpdatePanel的用法_控件_11

UpdatePanel的用法_控件_11

UpdatePanel的用法_控件_11 background-image:url(Blue hills.jpg);

UpdatePanel的用法_服务端_14 }

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端 .style1

UpdatePanel的用法_服务端_08 UpdatePanel的用法_sql_09 UpdatePanel的用法_html_10 {

UpdatePanel的用法_控件_11 background-position:top center;

UpdatePanel的用法_服务端_14 }

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端 </style>

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端 </head>

UpdatePanel的用法_服务端 <body  onload="oSpan.className='style1'" >

UpdatePanel的用法_服务端 <form id="form1" runat="server">

UpdatePanel的用法_服务端 <span style="font-size:14; width:250;" ID="oSpan"

UpdatePanel的用法_服务端 onmouseover="this.className='style2'" onmouseout="this.className='style1'"></span>

UpdatePanel的用法_服务端 <div>

UpdatePanel的用法_服务端 <asp:ScriptManager ID="ScriptManager1"     runat="server">

UpdatePanel的用法_服务端 </asp:ScriptManager>

UpdatePanel的用法_服务端 </div>

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端 <asp:UpdatePanel ID="uid"  runat="server">

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端 <ContentTemplate>

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端 <div >

UpdatePanel的用法_服务端 <asp:Button ID="Button1" runat="server" Text="异步回送" OnClick="Button1_Click1" />&nbsp;&nbsp;

UpdatePanel的用法_服务端 <asp:Button ID="Button2" runat="server" Text="整页回送" OnClick="Button2_Click" /><br />

UpdatePanel的用法_服务端 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="197px">

UpdatePanel的用法_服务端 <Columns>

UpdatePanel的用法_服务端 <asp:BoundField DataField="au_lname" FooterText="aaaa" HeaderText="au_lname" />

UpdatePanel的用法_服务端 </Columns>

UpdatePanel的用法_服务端 </asp:GridView>

UpdatePanel的用法_服务端 <br />

UpdatePanel的用法_服务端 <asp:Label ID="Label1" runat="server" Text="当前时间" Font-Bold="True" Font-Size="Large"></asp:Label>

UpdatePanel的用法_服务端 </div>

UpdatePanel的用法_服务端 </ContentTemplate>

UpdatePanel的用法_服务端 <Triggers>

UpdatePanel的用法_服务端 <asp:AsyncPostBackTrigger    ControlID="Button1" />

UpdatePanel的用法_服务端 <asp:PostBackTrigger  ControlID="Button2" />

UpdatePanel的用法_服务端 </Triggers>

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端 </asp:UpdatePanel>

UpdatePanel的用法_服务端 <div id="div1" >

UpdatePanel的用法_服务端 &nbsp;</div>

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端

UpdatePanel的用法_服务端 </form>

UpdatePanel的用法_服务端 </body>

UpdatePanel的用法_服务端 </html>

UpdatePanel的用法_服务端


表示UpdatePanel终于呈现的HTML元素。Block(默认)表示<div>,Inline表示<span>

里面包括了一个Triggers,里面第一个属性AsyncPostBackTrigger指定Button1实现异步更新,而PostBackTrigger

指定Button2实现整页更新。

.CS代码为:

UpdatePanel的用法_服务端 protected void Button1_Click1(object sender, EventArgs e)

UpdatePanel的用法_服务端_08 UpdatePanel的用法_sql_09 UpdatePanel的用法_html_10 {

UpdatePanel的用法_控件_11

UpdatePanel的用法_控件_11 SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=;database=pubs");

UpdatePanel的用法_控件_11 string sql1 = "select top 5 au_lname from authors ";

UpdatePanel的用法_控件_11 SqlDataAdapter myAdapter = new SqlDataAdapter(sql1, conn);

UpdatePanel的用法_控件_11 DataSet ds = new DataSet();

UpdatePanel的用法_控件_11 myAdapter.Fill(ds, "bieminG");

UpdatePanel的用法_控件_11 //来自web service的dataset,这里随便一个ds就能够;

UpdatePanel的用法_控件_11 this.GridView1.DataSource = ds.Tables["bieminG"].DefaultView; ;

UpdatePanel的用法_控件_11 this.GridView1.DataBind(); //数据绑定

UpdatePanel的用法_服务端_14 }

UpdatePanel的用法_服务端 protected void Button2_Click(object sender, EventArgs e)

UpdatePanel的用法_服务端_08 UpdatePanel的用法_sql_09 UpdatePanel的用法_html_10 {

UpdatePanel的用法_控件_11 this.Label1.Text = "11111";

UpdatePanel的用法_服务端_14 }


Button1实现一个数据集的异步更新,BUTTON2就是一般的赋值了。看看是不是非常easy呀!呵呵!