最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Asp.net中UpdatePanel的用法詳解

 更新時間:2021年06月25日 09:40:19   作者:BrokenIce  
本文詳細的介紹了Asp.net中UpdatePanel的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Asp.net UpdatePanel 允許用戶構建一個豐富的,以客戶端為中心的應用程序,引用UpdatePanel控件,能夠?qū)崿F(xiàn)頁面的部分刷新,一個包含scriptManage和 UpdatePanel控件的頁面自動具有頁面部分刷新的功能,不需要寫任何的客戶端JavaScript代碼。一個web頁面只能包含一個 ScriptManage控件,但可以包含一個或多個UpdatePanel控件。

使用UpdatePanel控件實現(xiàn)頁面的局部更新,需要包含一個ScriptManage控件,并且必須將ScriptManage控件的 EnablePartialRendering屬性設置為true,不過你不用擔心,該屬性的默認值就是True,所以,在默認情況下,只要添加了 ScriptManage控件,該頁面就自動具有了局部更新的能力。

一、UpdatePanel的結構

<asp:ScriptManager ID="ScriptManager1" runat="server" > 
</asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Always" RenderMode="Block"> 
<ContentTemplate> 
</ContentTemplate> 
<Triggers> 
<asp:AsyncPostBackTrigger /> 
<asp:PostBackTrigger /> 
</Triggers> 
</asp:UpdatePanel>

主要屬性:
1,ChildrenAsTriggers : 內(nèi)容模板內(nèi)的子控件的回發(fā)是否更新本模板(和UpdateMode的conditional有關)
2,UpdateMode : 內(nèi)容模板的更新模式,有always和conditional倆種
always:每次ajax PostBack或者普通的PostBack都能引起panel的更新 如果UpdatePanel設置為Always時,不能使用上面的ChildrenAsTriggers屬性,強行使用會報錯,是updatepanel默認的更新模式,和設置trigger觸發(fā)器沒有直接的關系。
conditional:只有滿足如下某一條件時才更新panel的內(nèi)容
如果設置UpdateMode="conditional" ChildrenAsTriggers="false"時候,子控件不允許觸發(fā)更新
1),當panel中的某個控件引發(fā)PostBack時
2), 當Panel指定的某個Trigger被引發(fā)時
3,RenderMode: 局部更新控件的呈現(xiàn)形式,倆中,Block(局部更新在客戶端以div形式展現(xiàn))和Inline(局部更新以span的形式展現(xiàn)在客戶端)
子元素:
1,contentTemplate: 局部更新控件的內(nèi)容模板,可以在其中添加任何控件
2,Triggers: 局部更新的觸發(fā)器,包括倆中:異步回發(fā)(AsyncPostBackTrigger) 用來實現(xiàn)局部更新。普通回發(fā)(PostBackTrigger)和普通的一樣,不管是否使用了局部更新控件,都會引起頁面的全部更新。

二、下面是幾個簡單的例子:

1、updatepanel的updatemode設置為always

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title>無標題頁</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
</div> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> 
<ContentTemplate> 
<% =DateTime.Now.ToString()%> 
<asp:Button ID="Button1" runat="server" Text="UpdatePanelButton" /> 
</ContentTemplate> 
</asp:UpdatePanel> 
<asp:Button ID="Button2" runat="server" Text="Button" /> 
</form> 
</body> 
</html>

不管哪個按鈕,都會觸發(fā)更新,只不過外面的按鈕postback的時候頁面顯示回發(fā)而已 !

2、updatepanel的updatemode設置為conditional( ChildrenTriggers="false" 就是updatepanel中事件不觸發(fā)更新)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title>無標題頁</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
</div> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false"> 
<ContentTemplate> 
<% =DateTime.Now.ToString()%> 
<asp:Button ID="Button1" runat="server" Text="UpdatePanelButton" /> 
</ContentTemplate> 
</asp:UpdatePanel> 
<asp:Button ID="Button2" runat="server" Text="Button" /> 
</form> 
</body> 
</html>

 三、下面介紹下updatePanel的觸發(fā)器Trigger

了解數(shù)據(jù)庫的人應該對觸發(fā)器這個概念比較清楚,Trigger對于UpdatePanel來說也是很關鍵的
開始簡單介紹了UpdatePanel的倆中觸發(fā)器asyncPostBackTrigger和PostBackTrigger的作用
這里用例子大概在稍微深入地介紹下:

1,普通回調(diào)觸發(fā)器(PostBackTrigger)

PostBackTrigger主要針對UpdatePanel模板內(nèi)的子控件,因為當子控件被觸發(fā)時。它只會更新模版內(nèi)的數(shù)據(jù),模板外的控件不會發(fā)生變化.當需要更新全局 內(nèi)容的時候就可以通過PostBackTrigger觸發(fā)器來實現(xiàn)頁面的全部回調(diào)。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title>無標題頁</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
</div> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> 
<ContentTemplate> 
<% =DateTime.Now.ToString()%> 
<asp:Button ID="Button1" runat="server" Text="UpdatePanelButton" /> 
</ContentTemplate> 
<Triggers> 
<!--下面的注釋掉,點擊updatePanel內(nèi)的button則只更新Panel內(nèi)的時間,取消注釋責全部更新--> 
<!-- <asp:PostBackTrigger ControlID="Button1"/>--> 
</Triggers> 
</asp:UpdatePanel> 
<br /> 
<% =DateTime.Now.ToString()%> 
<asp:Button ID="Button2" runat="server" Text="Button" /> 
</form> 
</body> 
</html>

2,異步回調(diào)觸發(fā)器(AsyncPostBackTrigger) 是實現(xiàn)局部更新的關鍵,在觸發(fā)器內(nèi)定義引起回發(fā)的控件和事件 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title>無標題頁</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> 
<ContentTemplate> 
<% =DateTime.Now.ToString()%> 
</ContentTemplate> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" /> 
</Triggers> 
</asp:UpdatePanel> 
<br /> 
<% =DateTime.Now.ToString()%> 
<asp:Button ID="Button2" runat="server" Text="Button" /> 
</form> 
</body> 
</html>

運行了發(fā)現(xiàn)點擊button2的時候只更新了 updatepanel內(nèi)部的時間
上面的例子也可以動態(tài)更新UpdatePanel的一些源代碼:
具體例子就不寫了下面 大概寫點主要代碼:

protected void Page_Load(object sender, EventArgs e) 
{ 
//獲取更新控件兒 
UpdatePanel mapanel = UpdatePanel1; 
//設置觸發(fā)模式 
mapanel.UpdateMode = UpdatePanelUpdateMode.Conditional; 
//顯示時間 
Label1.Text = DateTime.Now.ToString(); 
//添加觸發(fā) 
AsyncPostBackTrigger tri = new AsyncPostBackTrigger(); 
tri.ControlID = "Button2"; 
tri.EventName = "Click"; 
mapanel.Triggers.Add(tri); 
}

到此這篇關于Asp.net中UpdatePanel的用法詳解的文章就介紹到這了,更多相關Asp.net UpdatePanel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

广汉市| 和田市| 久治县| 沁阳市| 梧州市| 十堰市| 蒙阴县| 龙门县| 永川市| 信丰县| 海阳市| 漳浦县| 大悟县| 忻州市| 精河县| 崇州市| 木兰县| 万全县| 平南县| 吉林市| 边坝县| 乐安县| 黑龙江省| 曲靖市| 长武县| 济源市| 外汇| 县级市| 舞阳县| 延边| 绥宁县| 赤峰市| 禹州市| 资阳市| 故城县| 都昌县| 龙门县| 绥化市| 中超| 太仆寺旗| 石台县|