Ajax系列之三:UpdatePanel

來源:互聯網
上載者:User

標籤:web開發   ajax   asp.net   非同步   javascript   

         UpdatePanel控制項也是Ajax裡用得最多的控制項之一,UpdatePanel控制項是用來局部更新網頁上的內容,網頁上要局部更新的內容必須放在UpdatePanel控制項裡,他必須和上一次說的ScriptManager控制項一起使用。現在來看UpdatePanel的屬性

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。

 

          ChildrenAsTriggers:當UpdateMode屬性為Conditional時,UpdatePanel中的子控制項的非同步回送是否會引發UpdatePanle的更新。

           RenderMode:表示UpdatePanel最終呈現的HTML元素。Block(預設)表示<div>,Inline表示<span>,表示UpdatePanel最終呈現的HTML元素。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中的某個服務端控制項,它所引發的回送不使用非同步回送,而仍然是傳統的整頁回送。


現在我們來做一個簡單的執行個體:

<span style="font-size:18px;">< %@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">     <title>Untitled Page</title>     <style type="text/css">          body { background-attachment:fixed;                                              background-image:url(Blue hills.jpg);                 }                           .style1          {                 background-position:top center;          }                         </style>  </head> <body  onload="oSpan.className='style1'" >     <form id="form1" runat="server">     <span style="font-size:14; width:250;" ID="oSpan"         onmouseover="this.className='style2'" onmouseout="this.className='style1'"></span>         <div>             <asp:ScriptManager ID="ScriptManager1"     runat="server">                   </asp:ScriptManager>         </div>                     <asp:UpdatePanel ID="uid"  runat="server">                      <ContentTemplate>                              <div >                     <asp:Button ID="Button1" runat="server" Text="非同步回送" OnClick="Button1_Click1" />                       <asp:Button ID="Button2" runat="server" Text="整頁回送" OnClick="Button2_Click" /><br />                     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="197px">                         <Columns>                             <asp:BoundField DataField="au_lname" FooterText="aaaa" HeaderText="au_lname" />                         </Columns>                     </asp:GridView>                     <br />                    <asp:Label ID="Label1" runat="server" Text="目前時間" Font-Bold="True" Font-Size="Large"></asp:Label>                   </div>             </ContentTemplate>             <Triggers>                 <asp:AsyncPostBackTrigger    ControlID="Button1" />                 <asp:PostBackTrigger  ControlID="Button2" />             </Triggers>                        </asp:UpdatePanel>           <div id="div1" >                </div>                       </form> </body> </html></span>

裡麵包含了一個Triggers,裡面第一個屬性AsyncPostBackTrigger指定Button1實現非同步更新,而PostBackTrigger
指定Button2實現整頁更新。


.CS代碼為:

<span style="font-size:18px;"> protected void Button1_Click1(object sender, EventArgs e)     {            SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=;database=pubs");         string sql1 = "select top 5 au_lname from authors ";         SqlDataAdapter myAdapter = new SqlDataAdapter(sql1, conn);         DataSet ds = new DataSet();         myAdapter.Fill(ds, "bieminG");         //來自web service的dataset,這裡隨便一個ds就可以;         this.GridView1.DataSource = ds.Tables["bieminG"].DefaultView; ;         this.GridView1.DataBind(); //資料繫結     }     protected void Button2_Click(object sender, EventArgs e)     {         this.Label1.Text = "11111";     }</span>
        UpdatePanel是一個很不錯的控制項,有了這個控制項你可以不會寫javascript代碼,可以不動Ajax的機制,你就可以說你會用Ajax了!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.