zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    搞清楚C#中的值类型(基础类型)和引用类型
    构造动态SQL语句
    Json.net API及常用方法
    泛型代码中的default有何作用
    SQL 中的for xml path()的使用
    fastJosn和JackJson的区别
    箭头函数
    3篇文章初探MVC工作流程
    MVC传递Model之TempData、ViewData、ViewBag区别和用途
    .Net 提交页面,js修改的Label值会丢掉
  • 原文地址:https://www.cnblogs.com/freeliver54/p/628279.html
Copyright © 2011-2022 走看看