Ajax Extensions核心控件介绍
摘自:http://www.cnblogs.com/remember515/archive/2007/06/28/799030.html
updatePanel控件?
| UpdatePanel主要屬性 | |
| UpdateMode | 內(nèi)容模板的更新模式,有Always和Conditional兩種模式,默認(rèn)情況下為Always 區(qū)別:Always即一旦有任何事件可觸發(fā)updatePanel更新即開始更新內(nèi)容模板,而Conditional則是有條件的更新,一般為設(shè)置了Trigger屬性后由Trigger引發(fā)的更新 |
| ChildrenAsTriggers | 內(nèi)容模板內(nèi)的子控件的回發(fā)是否更新本模板,值為True或False |
| RenderMode | 局部更新控件的呈現(xiàn)形式,當(dāng)模式為Block時(shí)局部更新控件在客戶端以div的形式展現(xiàn),當(dāng)模式為Inline時(shí)以span形式展現(xiàn) |
| UpdatePanel主要子元素 | |
| ContentTemplate | 局部更新控件的內(nèi)容模權(quán),可以其內(nèi)添加任何控件 |
| Triggers | 局部?jī)?nèi)容更新觸發(fā)器,內(nèi)似于數(shù)據(jù)庫中的Trigger 觸發(fā)器分為異步回發(fā)(AsyncPostBackTrigger)和類似于普通頁面的回發(fā)機(jī)制(PostBackTrigger),前者實(shí)現(xiàn)局部更新,后者會(huì)引起整個(gè)頁面的全部更新 |
Timers控件
屬性Interval:控制需要等待的時(shí)間,默認(rèn)單位為毫秒,即1000即為1秒
事件Tick:Timer唯一的獨(dú)立事件,該事件用于設(shè)計(jì)要完成的任務(wù)
UpdateProgress控件
updateProgress實(shí)際上是一個(gè)div,通過代碼控制div的顯示或隱藏來實(shí)現(xiàn)更新提示,使用UpdateProgress可以設(shè)計(jì)良好的等待界面,達(dá)到與用戶友好交互的目的。
主要屬性和模板:
1、AssociateUpdatePanelID:關(guān)聯(lián)的UpdatePanel,此時(shí)UpdateProgress需放置于UpdatePanel外;
?????? 2、DisplayAfter:表示多長(zhǎng)時(shí)間后顯示進(jìn)度提示,默認(rèn)值為500毫秒
?????? 3、ProgressTemplate:用于設(shè)計(jì)等待時(shí)的界面,可在其內(nèi)加入圖形、文字等
腳本控制器ScriptManager
5個(gè)主要屬性及其4個(gè)子元素:
| EnablePartialRendering | 用于標(biāo)識(shí)此頁內(nèi)是否允許局部刷新,默認(rèn)值為True |
| AllowCustomErrorsRedirect | 表示當(dāng)Ajax調(diào)用發(fā)生錯(cuò)誤后,是否導(dǎo)航到Web.Config中定義的錯(cuò)誤配置,如果值為false,則使用AsyncPostBackErrorMessage和OnAsyncPostBackError兩個(gè)屬性實(shí)現(xiàn)錯(cuò)誤提示 |
| AsyncPostBackErrorMessage | 異步調(diào)用發(fā)生錯(cuò)誤時(shí)的提示信息 |
| OnAsyncPostBackError | 異步調(diào)用發(fā)生錯(cuò)誤時(shí)的事件 |
| AsyncPostBackTimeOut | 表示異步調(diào)用的有效時(shí)間,默認(rèn)值為90秒 |
| AuthenticationService | 用來表示提供驗(yàn)證服務(wù)的路徑 |
| ProfileService | 表示提供個(gè)性化服務(wù)的路徑 |
| Scripts | 對(duì)腳本的調(diào)用,其中可以嵌套多個(gè)ScriptReference模板以實(shí)現(xiàn)對(duì)多個(gè)腳本文件的調(diào)用 |
| Service | 對(duì)服務(wù)的調(diào)用,通常指Web Service服務(wù),可以嵌套多個(gè)ServiceReference模板以實(shí)現(xiàn)多個(gè)服務(wù)的引用 |
?至于ScriptManagerProxy,用法和ScriptManager差不多,值得一提的是一個(gè)頁面只能有一個(gè)ScriptManager。而ScriptManagerProxy則是當(dāng)母版頁和內(nèi)容頁需要引用不同的服務(wù)或者腳本時(shí),在內(nèi)容頁中用ScriptManagerProxy代理ScriptManager的職能。
實(shí)例:
下面給出一個(gè)無刷新實(shí)例,此例中加入了四個(gè)UpdatePanel
頁面部局如下:
UodatePanel1代碼如下:
| <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> ??????????? <ContentTemplate> ??????????????? updatePanel1<br /> ??????????????? <strong>Timer<br /></strong> ??????????????? <asp:Label ID="Label1" runat="server" Text="Label1" ForeColor="Blue"></asp:Label> ??????????????? <br /> ??????????????? <span style="font-size: 9pt">(拖放一個(gè)Timer到此,設(shè)其Interval為1000,即1秒刷新一次)</span> ??????????? </ContentTemplate> ??????????? <Triggers> ??????????????? <asp:AsyncPostBackTrigger ControlID="Timer1" /> ??????????? </Triggers> ??????? </asp:UpdatePanel> ??????????????? <asp:Timer ID="Timer1" runat="server" Interval="1000"> ??????????????? </asp:Timer> |
UodatePanel2代碼如下:
| <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> ??????????? <ContentTemplate> ??????????????? updatePanel2<br /> ??????????????? <strong>updateProgress</strong><br /> ??????????????? <asp:Label ID="Label2" runat="server" Text="Label2" ForeColor="Blue"></asp:Label> ??????????????? <br /> ??????????????? <asp:Button ID="btnProgress" runat="server" Text="刷新updatePanel2,出現(xiàn)updateProgress內(nèi)容" OnClick="btnProgress_Click" /> ??????????? </ContentTemplate> ??????????? <Triggers>? ??????????????? <asp:AsyncPostBackTrigger ControlID="btnProgress" /> ??????????? </Triggers> ??????? </asp:UpdatePanel> <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel2"> ??????????? <ProgressTemplate> ??????????????? <span style="font-size: 10pt; color: #ff6633"><strong> ???????????????? updatePanel2正在更新中...... </strong> ??????????????? </span> ??????????? </ProgressTemplate> ??????? </asp:UpdateProgress> |
UodatePanel3代碼如下:
| <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional"> ??????????? <ContentTemplate> ??????????????? updatePanel3<br /> ??????????????? <span style="font-size: 9pt"><strong> ??????????????? 局部刷新(1)</strong></span><br /> ??????????????? <asp:Label ID="Label3" runat="server" Text="Label3" ForeColor="Blue"></asp:Label><br /> ??????????????? <asp:Button ID="Button1" runat="server" Text="刷新updatePanel3" /> ??????????? </ContentTemplate> ??????????? <Triggers> ??????????????? <asp:AsyncPostBackTrigger ControlID="Button2" /> ??????????? </Triggers> ??????? </asp:UpdatePanel> |
UodatePanel4代碼如下:
| <asp:UpdatePanel ID="UpdatePanel4" runat="server" UpdateMode="Conditional"> ??????????? <ContentTemplate> ??????????????? updatePanel4<br /> ??????????????? <span style="font-size: 9pt"> <strong>局部刷新(2)<br /></strong></span> ??????????????? <asp:Label ID="Label4" runat="server" Text="Label4" ForeColor="Blue"></asp:Label> ??????????????? <br /> ??????? <asp:Button ID="Button2" runat="server" Text="刷新updatePanel3和updatePanel4" /> ??????????? </ContentTemplate> ??????????? <Triggers> ??????????????? <asp:AsyncPostBackTrigger ControlID="Button2" /> ??????????? </Triggers> ??????? </asp:UpdatePanel> |
Page_Load事件里面代碼如下:
| protected void Page_Load(object sender, EventArgs e) ??? { ??????????? this.Label1.Text = DateTime.Now.ToString(); ??????????? this.Label2.Text = DateTime.Now.ToString(); ???????? ???this.Label3.Text = DateTime.Now.ToString(); ??????????? this.Label4.Text = DateTime.Now.ToString();??????? ??? } |
UpdatePanel2中btnProgress的Click事件代碼如下:
| protected void btnProgress_Click(object sender, EventArgs e) ??? { ??????? //如果刷新速度太快則不會(huì)看到updateProgress中的內(nèi)容 ??????? //此時(shí)可以令程序延遲一段時(shí)間再執(zhí)行 ??????? System.Threading.Thread.Sleep(5000);//5秒 ??????? Label2.Text = DateTime.Now.ToString(); ??? } |
?
頁面最終效果圖
?
示例程序下載
轉(zhuǎn)載于:https://www.cnblogs.com/wj-wangjun/archive/2007/11/29/976689.html
總結(jié)
以上是生活随笔為你收集整理的Ajax Extensions核心控件介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑苹果 efi如何替换_看了这篇文章,再
- 下一篇: JavaScript中的闭包