返回首頁
當前位置: 主頁 > 網絡編程 > .Net實例教程 >

ASP.NET-Ajax控件

時間:2020-01-14 16:47來源:知行網www.wzliqi.com 編輯:麥田守望者

 AJAX代表異步JavaScript和XML。這是一種跨平臺技術,可加快響應時間。AJAX服務器控件將腳本添加到由瀏覽器執行和處理的頁面。

但是,像其他ASP.NET服務器控件一樣,這些AJAX服務器控件也可以具有與之關聯的方法和事件處理程序,這些方法和事件處理程序在服務器端進行處理。

Visual Studio IDE中的控件工具箱包含一組稱為“ AJAX擴展”的控件

AJAX擴展

ScriptManager控件

ScriptManager控件是最重要的控件,必須存在于頁面上,其他控件才能正常工作。

它具有基本語法:

<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>

如果您創建“啟用Ajax的站點”或從“添加項目”對話框中添加“ AJAX Web表單”,則該Web表單會自動包含腳本管理器控件。ScriptManager控件負責所有服務器端控件的客戶端腳本。

UpdatePanel控件

UpdatePanel控件是一個容器控件,它是從Control類派生的。它充當其中子控件的容器,并且沒有自己的接口。當內部控件觸發回發時,UpdatePanel進行干預以異步啟動該發帖并僅更新頁面的該部分。

例如,如果按鈕控件位于更新面板內部,并且單擊了按鈕控件,則僅會影響更新面板中的控件,而不會影響頁面其他部分上的控件。這稱為部分回發或異步回發。

在您的應用程序中添加一個AJAX Web表單。默認情況下,它包含腳本管理器控件。插入一個更新面板。在更新面板控件中放置一個按鈕控件和一個標簽控件。將另一組按鈕和標簽放在面板外部。

設計視圖如下所示:

腳本管理器

源文件如下:

<form id="form1" runat="server">    <div>       <asp:ScriptManager ID="ScriptManager1" runat="server" />    </div>        <asp:UpdatePanel ID="UpdatePanel1" runat="server">       <ContentTemplate>          <asp:Button ID="btnpartial" runat="server" onclick="btnpartial_Click" Text="Partial PostBack"/>          <br />          <br />          <asp:Label ID="lblpartial" runat="server"></asp:Label>       </ContentTemplate>    </asp:UpdatePanel>        <p> </p>    <p>Outside the Update Panel</p>    <p>       <asp:Button ID="btntotal" runat="server" onclick="btntotal_Click" Text="Total PostBack" />    </p>        <asp:Label ID="lbltotal" runat="server"></asp:Label> </form>

這兩個按鈕控件的事件處理程序具有相同的代碼:

string time = DateTime.Now.ToLongTimeString(); lblpartial.Text = "Showing time from panel" + time; lbltotal.Text = "Showing time from outside" + time;

觀察到在執行頁面時,如果單擊了全部回發按鈕,則會更新兩個標簽中的時間,但是如果單擊了部分回發按鈕,則只會更新更新面板中的標簽。

更新面板

一個頁面可以包含多個更新面板,每個面板包含其他控件(例如網格)并顯示數據的不同部分。

當發生全部回發時,默認情況下將更新更新面板的內容。可以通過更改控件的UpdateMode屬性來更改此默認模式。讓我們看一下更新面板的其他屬性。

UpdatePanel控件的屬性

下表顯示了更新面板控件的屬性:

性質 描述
兒童觸發 此屬性指示回發是否來自子控件,這將導致更新面板刷新。
內容模板 它是內容模板,用于定義呈現時在更新面板中顯示的內容。
ContentTemplateContainer 檢索動態創建的模板容器對象,并用于以編程方式添加子控件。
IsInPartialRendering 指示是否在部分回發中更新面板。
渲染模式 顯示渲染模式。可用模式為“阻止”和“串聯”。
更新模式 通過確定一些條件來獲取或設置渲染模式。
扳機 定義每個事件與導致面板自動刷新的事件相對應的集合觸發對象。

UpdatePanel控件的方法

下表顯示了更新面板控件的方法:

方法 描述
CreateContentTemplateContainer 創建一個Control對象,該對象充當定義UpdatePanel控件內容的子控件的容器。
CreateControlCollection 返回UpdatePanel控件中包含的所有控件的集合。
初始化 如果啟用了部分頁面呈現,則初始化UpdatePanel控件觸發器集合。
更新資料 導致更新UpdatePanel控件的內容。

更新面板的行為取決于UpdateMode屬性和ChildrenAsTriggers屬性的值。

更新模式 兒童觸發 影響
總是 非法參數。
總是 真正 如果整個頁面刷新或該頁面上的子控件回發,則UpdatePanel刷新。
有條件的 如果刷新整個頁面或外部的觸發控件啟動刷新,則UpdatePanel刷新。
有條件的 真正 如果整個頁面刷新,頁面上的子控件回發或外部的觸發控件啟動刷新,則UpdatePanel刷新。

UpdateProgress控件

當更新一個或多個更新面板控件時,UpdateProgress控件在瀏覽器上提供某種反饋。例如,當用戶登錄或在執行一些面向數據庫的作業時等待服務器響應時。

它提供視覺確認,例如“正在加載頁面...”,表明工作正在進行中。

UpdateProgress控件的語法為:

<asp:UpdateProgress ID="UpdateProgress1" runat="server" DynamicLayout="true" AssociatedUpdatePanelID="UpdatePanel1" >     <ProgressTemplate>       Loading...    </ProgressTemplate>     </asp:UpdateProgress>

上面的代碼片段顯示了ProgressTemplate標記內的一條簡單消息。但是,它可能是圖像或其他相關控件。除非使用AssociatedUpdatePanelID屬性將其分配給單個更新面板,否則UpdateProgress控件將為每個異步回發顯示。

UpdateProgress控件的屬性

下表顯示了更新進度控件的屬性:

性質 描述
AssociatedUpdatePanelID 獲取并設置與此控件關聯的更新面板的ID。
屬性 獲取或設置UpdateProgress控件的級聯樣式表(CSS)屬性。
顯示后 獲取并設置顯示進度模板的時間(以毫秒為單位)。默認值為500。
動態布局 指示進度模板是否動態呈現。
進度模板 指示在異步回發期間顯示的模板,該模板花費的時間比DisplayAfter時間長。

UpdateProgress控件的方法

下表顯示了更新進度控制的方法:

方法 描述
GetScriptDescriptors 返回UpdateProgress控件的客戶端功能所需的組件,行為和客戶端控件的列表。
GetScript參考 返回UpdateProgress控件的客戶端腳本庫依賴項列表。

計時器控制

計時器控件用于自動啟動回發。這可以通過兩種方式完成:

(1)設置UpdatePanel控件的Triggers屬性:

<Triggers>     <asp:AsyncPostBackTrigger ControlID="btnpanel2" EventName="Click" /> </Triggers>

(2)將計時器控件直接放置在UpdatePanel中以充當子控件觸發器。一個計時器可以觸發多個UpdatePanel。

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">     <ContentTemplate>       <asp:Timer ID="Timer1" runat="server" Interval="1000">          </asp:Timer>                 <asp:Label ID="Label1" runat="server" Height="101px" style="width:304px" >          </asp:Label>    </ContentTemplate>     </asp:UpdatePanel>
------分隔線----------------------------
標簽(Tag):
------分隔線----------------------------
推薦內容
  • ASP.NET-數據源

    數據源控件與數據綁定控件進行交互,并隱藏復雜的數據綁定過程。 這些工具可將數據提...

  • ASP.NET-Ajax控件

    AJAX代表異步JavaScript和XML。 這是一種跨平臺技術,可加快響應時間。 AJAX服務器控...

  • ASP.NET-面板控件

    面板控件用作頁面上其他控件的容器。 它控制其包含的控件的外觀和可見性。 它還允許以...

  • ASP.NET-多視圖

    MultiView和View控件使您可以將頁面的內容分為不同的組,一次僅顯示一個組。 每個View...

  • ASP.NET-日歷

    日歷控件是功能豐富的Web控件,它提供以下功能: 一次顯示一個月 選擇一天,一周或一...

  • ASP.NET-廣告輪播

    AdRotator控件從列表中隨機選擇橫幅圖形,該列表在外部XML計劃文件中指定。 該外部XML...

猜你感興趣
久久99久久99精品免视看