国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
UpdatePanel控件的簡單屬性學(xué)習(xí)

UpdatePanel控件的簡單屬性學(xué)習(xí)

一、RenderMode屬性,值為Block(默認(rèn)值)為Inline
 在頁面中輸入以下代碼:

 

<asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Block">   
             
<ContentTemplate>
                RenderMode
=Block
             
</ContentTemplate>
        
</asp:UpdatePanel>
        
<hr />
        
<asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Inline">
            
<ContentTemplate>
                RenderMode
=Inline
            
</ContentTemplate>
        
</asp:UpdatePanel> 

運(yùn)行后查看網(wǎng)頁源代碼,會(huì)發(fā)現(xiàn)以下HTML標(biāo)記:

 


<div id="UpdatePanel1">
                RenderMode
=Block
 
</div>
        
<hr />
        
<span id="UpdatePanel2">
                RenderMode
=Inline
        
</span>

 這就是這兩個(gè)值的區(qū)別,為Block時(shí)輸出的容器為<div>,而為Inline時(shí)則輸出<span>。

二、UpdateMode屬性,值為Always(默認(rèn)值)或Conditional
 作用分別為Always:只要頁面有異步回送則該UpdatePanel更新
 Conditional:只有該UpdatePanel控件中的控件產(chǎn)生的異步回送,才更新該UpdatePanel
 在頁面輸入以下代碼:
 
 
<asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Block" UpdateMode="Always">   
             
<ContentTemplate>
                
<%=DateTime.Now %>
                 
<asp:Button ID="Button1" runat="server" Text="點(diǎn)擊該按鈕只有上面時(shí)間更新" />
             
</ContentTemplate>
        
</asp:UpdatePanel>
        
<hr />
        
<asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Block" UpdateMode="Conditional">   
             
<ContentTemplate>
                
<%=DateTime.Now %>
                 
<asp:Button ID="Button2" runat="server" Text="點(diǎn)擊該按鈕全部時(shí)間都會(huì)更新" />
             
</ContentTemplate>
        
</asp:UpdatePanel> 
運(yùn)行后就會(huì)發(fā)現(xiàn)按鈕文本所寫的效果。

三、ChildrenAsTriggers屬性,值為True(默認(rèn)值)為False
 在頁面輸入以下代碼:

 
<asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Block" UpdateMode="Always" ChildrenAsTriggers="true">    
             
<ContentTemplate>
                
<%=DateTime.Now %>
             
</ContentTemplate>
        
</asp:UpdatePanel>
        
<hr />
        
<asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Block" UpdateMode="Conditional" ChildrenAsTriggers="false">   
             
<ContentTemplate>
                
<%=DateTime.Now %>
                 
<asp:Button ID="Button2" runat="server" Text="點(diǎn)擊該按鈕只有上方的時(shí)間會(huì)更新" />
             
</ContentTemplate>
        
</asp:UpdatePanel> 
運(yùn)行結(jié)果如按鈕文本所寫,他的作用是任何異步回送都不會(huì)引發(fā)該UpdatePanel更新(單獨(dú)指定的除外)。
 注意:如果ChildrenAsTriggers的值為False,則UpdateMode的值也應(yīng)該為Conditional,否則會(huì)引發(fā)異常,這時(shí)他不知道是該更新還是不更新。 

四、Triggers屬性,這其實(shí)是UpdatePanel的一個(gè)子節(jié)點(diǎn),作用是為UpdatePanel指定一個(gè)控件,由該控件引發(fā)UpdatePanel更新
 在頁面輸入以下代碼:

 

<asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Block"  ChildrenAsTriggers="true" UpdateMode="Conditional">    
             
<ContentTemplate>
                
<%=DateTime.Now %>
             
</ContentTemplate>
             
<Triggers>
                
<asp:AsyncPostBackTrigger ControlID="Button1" />
             
</Triggers>
        
</asp:UpdatePanel><hr />

        <asp:Button ID="Button1" runat="server" Text="該按鈕在UpdatePanel外,但為Triggers所指定,也會(huì)引發(fā)UpdatePanel更新" />
 由于UpdatePanel1的UpdateMode屬性為Conditional,所以只有當(dāng)里面的控件引發(fā)回送時(shí)也會(huì)更新,但是Triggers節(jié)點(diǎn)指定了一個(gè)外部的Button控件,由該控件一樣會(huì)引發(fā)UpdatePanel的更新。有意思的是被指定的Button按鈕會(huì)變成一個(gè)異步控件,也就是說如果你還雙擊該按鈕在CS文件中添加了一個(gè)Button_Click事件的話,會(huì)報(bào)出一個(gè)腳本錯(cuò)誤!

 在<asp:AsyncPostBackTrigger ControlID="Button1" />中還有一個(gè)屬性“EventName”,該屬性指定了一個(gè)事件名稱,作用為只有當(dāng)ControlID指定的控件的EventName指定的事件才會(huì)引發(fā)更新。

 在頁面輸入以下代碼:

 
<asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Block"  ChildrenAsTriggers="false" UpdateMode="Conditional">    
             
<ContentTemplate>
                
<%=DateTime.Now %>
                 
<asp:Button ID="Button1" runat="server" Text="不會(huì)刷新" />
                 
<asp:Button ID="Button2" runat="server" Text="不會(huì)刷新" />
             
</ContentTemplate>
        
</asp:UpdatePanel>
 
 如第三個(gè)屬性所說:這里把UpdatePanel的ChildrerAsTriggers屬性設(shè)置為False,則任何控件引發(fā)的回送都不會(huì)引發(fā)該UpdatePanel更新。
 但是把代碼修改如下:
 
 
<asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Block"  ChildrenAsTriggers="false" UpdateMode="Conditional">    
             
<ContentTemplate>
                
<%=DateTime.Now %>
                 
<asp:Button ID="Button1" runat="server" Text="因?yàn)槭荰riggers指定的控件,所以會(huì)引發(fā)更新" />
                 
<asp:Button ID="Button2" runat="server" Text="不會(huì)刷新" />
             
</ContentTemplate>
             
<Triggers>
                
<asp:AsyncPostBackTrigger ControlID="Button1" />
             
</Triggers>
        
</asp:UpdatePanel> 
其實(shí)就是為UpdatePanel添加了一個(gè)<Triggers>節(jié)點(diǎn),指向Button1。則運(yùn)行結(jié)果按鈕文本所示。

 事實(shí)上Triggers可以指定UpdatePanel外的控件,也可以指定一個(gè)在其他UpdatePanel內(nèi)的控件,或者在GridView中的一個(gè)控件。

在母版頁中使用 UpdatePanel

要在母版頁中使用 UpdatePanel 控件,必須確定如何使用 ScriptManager 控件。如果在母版頁面中放置了一個(gè) ScriptManater 控件,則 ScriptManager 控件可以在所有的內(nèi)容面中起作用。(如果要在內(nèi)容頁中聲明腳本或服務(wù),可以在頁面中添加一個(gè) ScriptManagerProxy,它具有和 ScriptManager 差不多一樣的屬性和方法。)
如果在母版頁中沒有包含 ScriptManager 控件,就必須在包含 UpdatePanel 控件的每個(gè)內(nèi)容頁是都要放置一個(gè) ScriptManager 控件,設(shè)計(jì)的選擇依賴于在應(yīng)用程序中將如何管理客戶端腳本。
如果在母版頁中包含了 ScriptManager 控件,而在某個(gè)內(nèi)容頁中又不打算使用局部頁面輸出的功能時(shí),必須用程序設(shè)置內(nèi)容中的 ScriptManager 控件的 EnablePartialRendering 為 false  。

 使用嵌套的 UpdatePanel 控件

UpdatePanel 控件可以嵌套使用,如果父面板被刷新,則所有嵌套的面板也都會(huì)被刷新。
下列代碼展示了如何在一個(gè) UpdatePanel 控件中定義另一個(gè) UpdatePanel 控件。

<&percnt;@ Page Language="C#" &percnt;>
<!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 id="Head1" runat="server">
    <title>UpdatePanelUpdateMode 示例</title>
    <style type="text/css">
    div.NestedPanel
    {
      position: relative;
      margin: 2&percnt; 5&percnt; 2&percnt; 5&percnt;;
    }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager"
                               runat="server" />
            <asp:UpdatePanel ID="OuterPanel"
                             UpdateMode="Conditional"
                             runat="server">
                <ContentTemplate>
                    <div>
                        <fieldset>
                            <legend>外層 Panel </legend>
                            <br />
                            <asp:Button ID="OPButton1"
                                        Text="外層面板按鈕"
                                        runat="server" />
                            <br />
                            最后更新在:
                            <&percnt;= DateTime.Now.ToString() &percnt;>
                            <br />
                            <br />
                            <asp:UpdatePanel ID="NestedPanel1"
                                               UpdateMode="Conditional"
                                               runat="server">
                                <ContentTemplate>
                                    <div class="NestedPanel">
                                        <fieldset>
                                            <legend>嵌套面板</legend>
                                            <br />
                                            最后更新在:
                                            <&percnt;= DateTime.Now.ToString() &percnt;>
                                            <br />
                                            <asp:Button ID="NPButton1"
                                                        Text="嵌套面板按鈕"
                                                        runat="server" />
                                        </fieldset>
                                    </div>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </fieldset>
                    </div>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>

 用程序創(chuàng)建 UpdatePanel 控件

要用程序添加一個(gè) UpdatePanel 控件到頁面中,可以先創(chuàng)建一個(gè)新的 UpdatePanel 實(shí)例,然后使用它的 ContentTemplateContainer 屬性的 Add( Control ) 方法來添加其他控件。不能直接使用 ContentTemplate  屬性來添加控件。
如果 UpdatePanel 控件是程序添加的,只有來自同樣命名容器如 UpdatePanel 控件中控件的回發(fā)才可以被使用為面板的觸發(fā)器。
下列代碼演示了如何用程序添加 UpdatePanel 控件。

<&percnt;@ Page Language="C#" &percnt;>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        UpdatePanel up1 = new UpdatePanel();
        up1.ID = "UpdatePanel1";
        up1.UpdateMode = UpdatePanelUpdateMode.Conditional;
        Button button1 = new Button();
        button1.ID = "Button1";
        button1.Text = "Submit";
        button1.Click += new EventHandler(Button_Click);
        Label label1 = new Label();
        label1.ID = "Label1";
        label1.Text = "A full page postback occurred.";
        up1.ContentTemplateContainer.Controls.Add(button1);
        up1.ContentTemplateContainer.Controls.Add(label1);
        Page.Form.Controls.Add(up1);

    }
    protected void Button_Click(object sender, EventArgs e)
    {
        ((Label)Page.FindControl("Label1")).Text = "Panel refreshed at " +
            DateTime.Now.ToString();
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Added Programmatically Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="TheScriptManager"
                               runat="server" />
        </div>
    </form>
</body>
</html>


 UpdatePanel 的關(guān)鍵屬性

ChildrenAsTriggers:
指示來自 UpdatePanel 控件的直接子控件的回發(fā)是否更新面板的內(nèi)容。設(shè)置為 true 時(shí)更新,否則不更新,默認(rèn)為 true 。如果此屬性設(shè)置為 false ,UpdatePanel 控件的 UpdateMode 就必須設(shè)置為 Conditional ,否則會(huì)拋出 InvalidOperationException 異常。
UpdateMode:
指示什么時(shí)候需要更新面板。當(dāng)一個(gè)UpdatePanel 控件沒有包含在另一個(gè) UpatePanel 控件中時(shí),面板的更新是根據(jù) UpdateMode 、ChildrenAsTriggers 屬性的設(shè)置,以及觸發(fā)器的集合來進(jìn)行的。當(dāng)一個(gè) UpdatePanel 控件在另一個(gè) UpdatePanel 控件內(nèi)部時(shí),子面板會(huì)自動(dòng)在父面板更新時(shí)更新。
UpdatePanel 控件的內(nèi)容在下列情形下會(huì)更新:
  • 如果 UpdateMode 屬性設(shè)置為 Alwarys 時(shí),UpdatePanel 控件中的內(nèi)容會(huì)在源自頁面上任何地方的每個(gè)回發(fā)時(shí)更新。這包括由包含在其他 UpdatePanel 控件中的控件的回發(fā)和沒有在 UpdatePanel 控件中的回發(fā)。
  • 如果 UpdatePanel 控件嵌套在另一個(gè) UpdatePanel 控件中時(shí),父面板更新時(shí)它也會(huì)被更新。
  • 如果 UpdateMode 屬性被設(shè)置為 Conditional 時(shí),且出現(xiàn)下列條件之一時(shí):
    • 顯式調(diào)用 UpdatePanel 控件的 Update() 方法。
    • 由 UpdatePanel 控件中的 Triggers 屬性定義的觸發(fā)器控件引起的回送。在這種情況下,控件會(huì)顯式的觸發(fā)面板內(nèi)容的更新。定義為觸發(fā)器的控件可以在 UpdatePanel 控件的內(nèi)部也可以在其外部。
    • ChildrenAsTriggers 屬性設(shè)置為 true ,并且是由 UpdatePanel 控件中的子控件導(dǎo)致的回發(fā)。在嵌套的 UpdatePanel 控件中的子控件不會(huì)引起外層 UpdatePanel 控件的更新,除非顯示的定義為觸發(fā)器。

由以上內(nèi)容可以看出,使用 UpdatePanel 控件可以方便的幫助大家開發(fā)出具有 AJAX 特性的 ASP.NET 應(yīng)用程序來。當(dāng)然,它也不是萬能的,過度的使用會(huì)引起一定的性能開銷,同時(shí)它還與現(xiàn)在的部分 ASP.NET 控件不兼容,如 TreeView、Menu,以及 WebParts 控件等。 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ScriptManager和UpdatePanel用法 (ajax) - BlueWorl...
[轉(zhuǎn)] ASP.NET AJAX中的嵌套UpdatePanel - 陳老師空間 - 博客園
ASP.NET AJAX入門系列(11):在多個(gè)UpdatePanle中使用Timer控件
ASP.NET AJAX入門系列(4):使用UpdatePanel控件(一)
asp.net UpdateProgress控件的使用
UpdatePanel的使用(上)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服