UpdatePanel的使用方法-飞外

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

UpdatePanel重要的属性如下:
当UpdateMode属性为Conditional时,UpdatePanel中的子控件的异步回送是否会引发UpdatePanle的更新。
表示UpdatePanel的更新模式,有两个选项:Always和Conditional。Always是不管有没有Trigger,其他控件都将更新该UpdatePanel,Conditional表示只有当前UpdatePanel的Trigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是服务器端调用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中控件引发的异步回送或者整页回送,或是服务器端调用Update()方法才会引发更新该UpdatePanel。
Contente Template:用来定义UpdatePanel的内容
Triggers:分别为AsyncPostBackTrigger和PostBackTrigger
AsyncPostBackTrigge用来指定某个服务器端控件以及其将触发的服务器端事件作为该UpdatePanel的异步更新触发器,它需要设置的属性有控件ID和服务端控件的事件;PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送
现在我们来做一个简单的实例: %@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%

!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
htmlxmlns="http://www.w3.org/1999/xhtml"
headrunat="server"
title UntitledPage /title
style
body{background-attachment:fixed;


background-image:url(Bluehills.jpg);
}

.style1
{
background-position:topcenter;
}


/style

/head
bodyonload="oSpan.className='style1'"
formrunat="server"
span ID="oSpan"
onmouseout="this.className='style1'" /span
div
asp:ScriptManagerID="ScriptManager1"runat="server"
/asp:ScriptManager
/div

asp:UpdatePanelID="uid"runat="server"

ContentTemplate

div
asp:ButtonID="Button1"runat="server"Text="异步回送" / nbsp; nbsp;
asp:ButtonID="Button2"runat="server"Text="整页回送" / br/
asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"Width="197px"
Columns
asp:BoundFieldDataField="au_lname"FooterText="aaaa"HeaderText="au_lname"/
/Columns
/asp:GridView
br/
asp:LabelID="Label1"runat="server"Text="当前时间"Font-Bold="True"Font-Size="Large" /asp:Label
/div
/ContentTemplate
Triggers
asp:AsyncPostBackTriggerControlID="Button1"/
asp:PostBackTriggerControlID="Button2"/
/Triggers

/asp:UpdatePanel
div
nbsp; /div


/form
/body
/html

里面包含了一个Triggers,里面更新。
.CS代码为:

protectedvoidButton1_Click1(objectsender,EventArgse)
{

SqlConnectionconn=newSqlConnection("server=.;uid=sa;pwd=;database=pubs");
stringsql1="selecttop5au_lnamefromauthors";
SqlDataAdaptermyAdapter=newSqlDataAdapter(sql1,conn);
DataSetds=newDataSet();
myAdapter.Fill(ds,"bieminG");
//来自webservice的dataset,这里随便一个ds就可以;
this.GridView1.DataSource=ds.Tables["bieminG"].DefaultView;;
this.GridView1.DataBind();//数据绑定
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
this.Label1.Text="11111";
}
Button1实现一个数据集的异步更新,BUTTON2就是一般的赋值了。看看是不是很简单呀!呵呵!