• Ajax:如何运用updatepanle进行局部刷新


    1.设定ScriptManager的EnablePartialRendering="true"(一般默认为true)

    2.设定要进行局部刷新panel的UpdateMode="Conditional"(本panel 的id为zz)
      这样就可以保在本panle内的控件操作refresh页面时,
      不会将整个page刷新,而刷新本panle中的
      如果还想作其它操作时refresh这个panel中的控件可以如下操作

    3.加入<Triggers><asp:AsyncPostBackTrigger ControlID="xx" EventName="yy" /></Triggers>
      其中ControlID写相关的控件id,EventName写该控件的事件
      这样就会,如果这个近件(xx)做yy动作时,将会refresh zz这个panel

    eg:
    <%--第一个panel--%>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
    <ContentTemplate>       
        <asp:TreeView ID="ctlUnitTree" runat="server" EnableClientScript="False"
          OnSelectedNodeChanged="ctlUnitTree_SelectedNodeChanged"
          OnTreeNodeExpanded="ctlUnitTree_TreeNodeExpanded">
        </asp:TreeView>
    </ContentTemplate>
    </asp:UpdatePanel>

    <%--第二个panel--%>
    <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional" >
    <ContentTemplate>
     <asp:TextBox ID="txtLoginID" Enabled="false" runat="server" ></asp:TextBox>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ctlUnitTree" EventName="SelectedNodeChanged" />
    </Triggers>
    </asp:UpdatePanel>

    作用就是:
    第一个panel中的tree变更选中节点时,
    将会refesh第二个panel中的值
    而第二个panel中做任何作动将不会影响第一个panel

    4.如果想第二个panel中的textbox改变时,要refresh第一个panel
      可在第一个panel中加及同样的
      <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ctlUnitTree" EventName="TextChanged" />
      </Triggers>
      或者在OnTextChanged事件中加入UpdatePanel1.update();进行强行refresh

  • 相关阅读:
    db2中的常用命令及使用方法
    互联网服务应用协议设计
    Zookeeper整理(一)- 写操作产生事件,写操作与Watcher对应关系
    实现自己的连接池(一)
    SMP、NUMA、MPP体系结构介绍
    随手备忘 ubuntu12.04 lts 安装gcc 4.8
    认真体会 结构体中的零长度数组
    由内存池实现总结内存对齐问题
    认真理解 oom killer 备忘
    仔细体会 epoll中的et lt模式
  • 原文地址:https://www.cnblogs.com/freeliver54/p/628279.html
Copyright © 2020-2023  润新知