• 【转】UpdatePanel控件的简单属性


    转自:http://www.cnblogs.com/chx197/archive/2008/11/09/1329934.html

    一、RenderMode属性,值为Block(默认值)为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> 

    运行后查看网页源代码,会发现以下HTML标记:

     


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

     这就是这两个值的区别,为Block时输出的容器为<div>,而为Inline时则输出<span>。

    二、UpdateMode属性,值为Always(默认值)或Conditional
     作用分别为Always:只要页面有异步回送则该UpdatePanel更新
     Conditional:只有该UpdatePanel控件中的控件产生的异步回送,才更新该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="点击该按钮只有上面时间更新" />
                 
    </ContentTemplate>
            
    </asp:UpdatePanel>
            
    <hr />
            
    <asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Block" UpdateMode="Conditional">   
                 
    <ContentTemplate>
                    
    <%=DateTime.Now %>
                     
    <asp:Button ID="Button2" runat="server" Text="点击该按钮全部时间都会更新" />
                 
    </ContentTemplate>
            
    </asp:UpdatePanel> 
    运行后就会发现按钮文本所写的效果。

    三、ChildrenAsTriggers属性,值为True(默认值)为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="点击该按钮只有上方的时间会更新" />
                 
    </ContentTemplate>
            
    </asp:UpdatePanel> 
    运行结果如按钮文本所写,他的作用是任何异步回送都不会引发该UpdatePanel更新(单独指定的除外)。
     注意:如果ChildrenAsTriggers的值为False,则UpdateMode的值也应该为Conditional,否则会引发异常,这时他不知道是该更新还是不更新。 

    四、Triggers属性,这其实是UpdatePanel的一个子节点,作用是为UpdatePanel指定一个控件,由该控件引发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所指定,也会引发UpdatePanel更新" />
     由于UpdatePanel1的UpdateMode属性为Conditional,所以只有当里面 的控件引发回送时也会更新,但是Triggers节点指定了一个外部的Button控件,由该控件一样会引发UpdatePanel的更新。有意思的是被 指定的Button按钮会变成一个异步控件,也就是说如果你还双击该按钮在CS文件中添加了一个Button_Click事件的话,会报出一个脚本错误!

     在<asp:AsyncPostBackTrigger ControlID="Button1" />中还有一个属性“EventName”,该属性指定了一个事件名称,作用为只有当ControlID指定的控件的EventName指定的事件 才会引发更新。

     在页面输入以下代码:

     
    <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="不会刷新" />
                     
    <asp:Button ID="Button2" runat="server" Text="不会刷新" />
                 
    </ContentTemplate>
            
    </asp:UpdatePanel>
     
     如第三个属性所说:这里把UpdatePanel的ChildrerAsTriggers属性设置为False,则任何控件引发的回送都不会引发该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="因为是Triggers指定的控件,所以会引发更新" />
                     
    <asp:Button ID="Button2" runat="server" Text="不会刷新" />
                 
    </ContentTemplate>
                 
    <Triggers>
                    
    <asp:AsyncPostBackTrigger ControlID="Button1" />
                 
    </Triggers>
            
    </asp:UpdatePanel> 
    其实就是为UpdatePanel添加了一个<Triggers>节点,指向Button1。则运行结果按钮文本所示。
     事实上Triggers可以指定UpdatePanel外的控件,也可以指定一个在其他UpdatePanel内的控件,或者在GridView中的一个控件。
  • 相关阅读:
    DOS之for循环用法说明
    Android 系统奔溃触发WatchDog分析
    『Android Q 源码分析』 Android 10.0 WatchDog源码解析
    android 命令:adb tcpip 5555 吊起"允许USB调试吗"
    Android 语言简码
    wps时间戳转换成日期
    Notepad++ 技巧:将某个字串批量替换为 换行符,或批量取消换行
    查询性能提升3倍!Apache Hudi 查询优化了解下?
    IE6 css fixed
    跟我一起学习ASP.NET 4.5 MVC4.0(四)
  • 原文地址:https://www.cnblogs.com/bluecoffee/p/2055245.html
Copyright © 2020-2023  润新知