Atlas學習手記(Ajax.net)

來源:互聯網
上載者:User

UpdatePanel是Atlas中一個很重要的控制項,功能強大且容易使用,可以使我們只做很小的改動就可以向已有的ASP.NET網站添加Ajax。採用Dflying的建議,我也是由UpdatePanel進入Atlas的世界。本文將通過可視化和代碼兩種方式來實現向已有的ASP.NET應用程式中添加UpdatePanel。

主要內容

1.UpdatePanel概述
2.使用可視化方式
3.使用代碼方式
 
一.UpdatePanel概述
UpdatePanel是Atlas中一個很重要的控制項,功能強大且容易使用,可以使我們只做很小的改動就可以向已有的ASP.NET網站添加Ajax。採用Dflying的建議,我也是由UpdatePanel進入Atlas的世界。本文將通過可視化和代碼兩種方式來實現向已有的ASP.NET應用程式中添加UpdatePanel。看一小段UpdatePanel的樣本程式:

 


<Atlas:UpdatePanel ID="UpdatePanel1" runat="server" Mode="Always">

    <Triggers>

        <Atlas:ControlEventTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />

    </Triggers>

    <ContentTemplate>

       <asp:Label ID="Label1" runat="server" Width="164px" Font-Bold="True"></asp:Label>

    </ContentTemplate>

</Atlas:UpdatePanel>

 


我們需要注意的是:
1.UpdatePanel的更新方式有兩種,即上面的Mode


更新方式

說明

Always

每次AJAX PostBack或是普通PostBack的時候都會更新該Panel的內容
Mode="Always"

Conditional

只有滿足如下某一條件時才更新該Panel的內容:
當Panel中的某個控制項引發了PostBack時
當Panel所指定的某個Trigger被引發時
當Panel的Update()方法在Codebehind中被調用時
Mode=" Conditional"


2.Triggers元素指定了發生動作的事件來源,UpdatePanel提供兩種引發非同步PostBack的Trigger:


Triggers

說明

ControlValueTrigger

當某個控制項的某個指定的屬性變化時更新。
<Atlas:ControlValueTrigger ControlID="DropDownList1" PropertyName="SelectedValue" />

ControlEventTrigger

當某個控制項發出指定事件時更新。
<Atlas:ControlEventTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />


3.ContentTemplate元素中指定了希望更新的部分,我們把需要動態更新的控制項等都放在ContentTemplate中。下面我們將通過通過可視化和代碼兩種方式來看一下如何使用UpdatePanel。
二.使用可視化方式添加
1.建立Web Site項目,添加一個DropDownList和一個Label,並為DropDownList添加一些簡單的Item:

 


<asp:DropDownList ID="DropDownList1" runat="server" Width="167px" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">

    <asp:ListItem>Nancy</asp:ListItem>

    <asp:ListItem>Andrew</asp:ListItem>

    <asp:ListItem>Janet</asp:ListItem>

    <asp:ListItem>Margaret</asp:ListItem>

</asp:DropDownList>

 


設定DropDownList的AutoPostBack屬性為True,在SelectedIndexChanged事件中添加如下代碼:

 


protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)

{

    this.Label1.Text = "Selected : " + this.DropDownList1.SelectedValue;

}

 


2.運行程式,這是一個標準的ASP.NET應用程式,Label將根據DropDownList的選擇不同顯示不同的文本,但是這個頁面是完全重新整理的,在選擇的時候,瀏覽器的狀態列將會顯示一個進度條,如下圖所示:

下面我們將通過可視化的方式為該應用程式添加上Atlas UpdatePanel。
3.托拽一個UpdatePanel控制項到頁面上,如何添加Atlas控制項到工具箱請參考Add“Atlas”controls to the toolbox,這時將會自動添加Microsoft.Web.Atlas.dll到項目中。

4.添加ScriptManager到頁面。

5.設定EnablePartialRendering屬性為True。

6.拖拽Label控制項到UpdatePanel中,並設定UpdatePanel的屬性和Triggers。
至此,我們就通過可視化的方式完成了對UpdatePanel的添加,運行程式就會看到效果了。
三.使用代碼方式添加
接上面的第二步,我們看看添加具體的代碼。添加完Microsoft.Web.Atlas.dll的引用後,在頁面中先添加:

 


<%@ Register Assembly="Microsoft.Web.Atlas" Namespace="Microsoft.Web.UI" TagPrefix="Atlas" %>

 


添加ScriptManager控制項,並設定EnablePartialRendering屬性為true,這一點切記!關於ScriptManager的詳細介紹可以參考Atlas學習手記(2):全面瞭解ScriptManager。

 


<Atlas:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">

</Atlas:ScriptManager>

 


下面就該主角UpdatePanel登場了,在這裡需要設定Triggers,Triggers指定了發生動作的事件來源,也可以設定UpdatePanel的更新方式。

 


<Atlas:UpdatePanel ID="UpdatePanel1" runat="server">

    <Triggers>

        <Atlas:ControlValueTrigger ControlID="DropDownList1" PropertyName="SelectedValue" />

    </Triggers>

    <ContentTemplate>

       <asp:Label ID="Label1" runat="server" Width="164px" Font-Bold="True"></asp:Label>

    </ContentTemplate>

</Atlas:UpdatePanel>

 


這裡我們設定的是ControlValueTrigger,如果要設定ControlEventTrigger,代碼如下:

 


<Atlas:UpdatePanel ID="UpdatePanel1" runat="server">

    <Triggers>

        <Atlas:ControlEventTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />

    </Triggers>

    <ContentTemplate>

       <asp:Label ID="Label1" runat="server" Width="164px" Font-Bold="True"></asp:Label>

    </ContentTemplate>

</Atlas:UpdatePanel>

 


到這兒所有的步驟都做完了,運行就可以體會到效果了。在這個過程中,我們並沒有考慮任何的XMLHTTPRequest或者ActiveX對象,也沒有編寫任何的用戶端指令碼代碼,這一切Atlas已經完全為我們做好了。
<
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.