第一种是    .UpdaterPanel

首先ScriptManager中要设置EnablePartialRendering="true" 来开启局部更新功能,

同时在UpdaterPanel中设置属性UpdateMode="Conditional/Always",

如选择是 Conditional 的话,还需UpdaterPanel按设置如下

<Triggers>

<asp:AsyncPostBackTrigger ControlID="Button3" EventName="Click" />

</Triggers>

ps:触发条件有2种,由事件或值来触发,按值来触发尚未在1.0.6版中发现,

触发的控件必须是服务器控件,该控件可在<ContentTemple>里,也可在UpdaterPanel外。

 

第二中是人为强制不postback

<asp:Button  id="Button4" Text="采用HttpPost方法"   OnClientClick="useHttpPost();return false;"   runat="server" />如粗体部分所示,人为强制不postback,

比较

采用UpdaterPanel可以不用做重复功给$get(ElementId)赋值,代码简练得多。只要把一同更新的放进一个UpdaterPanel里就可以了。

Tips:采用OnClientClick还是Click方法,(a).取决于你习惯在客户端调用Web Service方法,还是在服务器端调用了。服务器端应该神秘点吧,但如传入的数据需要处理的话,在服务器端先进行一般处理也是个值得考虑的方法。

(b) Click方法,要Trigger配合,同时有个很大的限制,就是它只能刷新UpdaterPanel里的,不能刷新外面的;但OnClientClick却是里外都行。

============================================================================================

完整示例:

客户端js部分:

var num=0;

//局部刷新

function divIn()

{ num++;

WebService.HelloWorld(num,disDivIn);

}

function disDivIn(result)

{

$get("divIn").innerHTML =result;

}

//页面加载时局部刷新

window.οnlοad=function()

{

alert('pageOnLoad()');

divIn ();

}

客户端表现层部分:

<asp:ScriptManager ID="ScriptManager1" runat="server"   EnablePartialRendering="true" >

<Services>

<asp:ServiceReference InlineScript="true" Path="WebService.asmx"  />

</Services>

</asp:ScriptManager>

<asp:Button  id="Button3" Text="Server局部刷新"   runat="server"  OnClick="Button3_Click"  />

<asp:Button  id="Button4" Text="Browser局部刷新"   runat="server"  On ClientClick="divIn();return false;"  />

<asp:UpdatePanel ID="UpdatePanel1" runat="server"  UpdateMode="Conditional"  RenderMode="Block">

<ContentTemplate>

<div id="divIn" runat="server"></div>

</ContentTemplate>

<Triggers>

<asp:AsyncPostBackTrigger ControlID="Button3" EventName="Click" />

</Triggers>

</asp:UpdatePanel>

Web Service部分

using System.Web.Script.Services;

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[ScriptService]

public class WebService : System.Web.Services.WebService {

public WebService () {

}

[WebMethod ]

 [ScriptMethod]

public string HelloWorld(int i)

{// System.Threading.Thread.Sleep(9000);

StringBuilder str = new StringBuilder();

for (int n = 0; n < i; n++)

{

str.Append("Hello World<br/>");

}

return str.ToString();

}

}

橙色部分是决定Web Server中方法能否为客户端调用的关键,要自己手动添加

CS部分

 

protected void Button3_Click(object sender, EventArgs e)

{

divIn.InnerHtml = divIn.InnerHtml + "the data is from server" + "<br/>";

}

转载于:https://www.cnblogs.com/hyqiang168/articles/888766.html

Alats2种局部刷新的比较相关推荐

  1. Flutter局部刷新

    在Flutter中,如果我们想要更新页面中的某个widget的状态的话,一般会使用setState方法重走build方法来刷新.当页面布局复杂的时候,这样肯定是不行的. 下面提供了两种局部刷新的方式, ...

  2. 前端局部刷新的几种方式

    1. 通过img标签请求,实现局部刷新.实现方式向页面插入一个img标签,监听其加载,加载成功则表示请求成功,做出相应的处理:加载补充表示请求补充,也作出相应的处理. button.addEventL ...

  3. 局部刷新的两种实现方式

    最近忙于上海东方有线的项目,客户需要一些下拉框的局部刷新功能,我参看了其他同事的代码,发现并未实现数据的异步传输,而是采用from局部提交的方式.以下是整理出来的经典下拉列表局部刷新功能Example ...

  4. 两种方式实现局部刷新

    嗯,在这里我们主要讨论一下在使用Struts 2.5时最常遇到的一个问题:页面局部刷新.Struts是一个MVC模型,因此常见的返回结果类型为一个页面,它可以是jsp.freemarker或者velo ...

  5. 页面局部刷新三种方法

    页面局部刷新 1.使用ajax实现小部分的内容局部刷新 $.ajax({ url:"http://localhost:8080/intoHomepage.do", type:&qu ...

  6. redux 局部刷新_如何使用Redux Observables和刷新令牌API获取新的访问令牌

    redux 局部刷新 by Sachin Kumar 由Sachin Kumar 如何使用Redux Observables和刷新令牌API获取新的访问令牌 (How to get a new acc ...

  7. flutter怎么手动刷新_flutter局部刷新的实现示例

    局部刷新 我们在做项目的时候,都需要单独的去刷新一个值,而不是把整个界面都重绘.大家都知道setState是进行重绘的一个方法,他会执行生命周期的一个build,这将会使得整个界面来进行重绘.当然我们 ...

  8. ORM中的事务和锁、Ajax异步请求和局部刷新、Ajax文件上传、日期时间类型的Json、多表查询图书系统

    一.ORM中的事务和锁 事务 事务要确保原子性 """ 事务ACID原子性:不可分隔的最小单位一致性:跟原子性是相辅相成隔离性:事务之间相互不干扰持久性:事务一旦确认永久 ...

  9. ajax 刷新output,JSF生命周期及AJAX局部刷新

    这些时间可能一直得搞JSF...... 呵呵,这个星期天再一次的仔细的研究了一下这个所谓的6个生命周期的运行情况以及所谓的AJAX局部刷新的问题. 看了core JSF里详细描述的JSF的生命周期,基 ...

最新文章

  1. 力扣——按递增顺序显示卡牌
  2. dos批处理命令详解
  3. php正则 与 js正则
  4. Maven原型创建技巧
  5. 优秀的SharePoint 2013开发工具有哪些(二)
  6. 操作系统原理:进程 PV 操作如何计算?全网最全三种前驱图计算类型总结
  7. python rs232_使用Python進行RS-232通信返回垃圾信息
  8. Ansible playbook
  9. Java字节流和字符流区别
  10. mysql replication 延时_MySQL:延迟的主从复制 ( Delayed Replication )
  11. 【转】我眼中的自动化测试框架设计要点
  12. Redis 两种持久化方式的原理
  13. DNS DDNS NBNS mDNS LLMNR LLDPDU SSDP协议
  14. 查看html源代码编码,查看网页源代码全是乱码,但前台页面可以正常显示
  15. 韩信点兵问题的简单算法 downmoon
  16. 计算机设计项目符号和编号,项目符号和编号
  17. 计算机文字转表格,Word怎么把文字转换成表格 30秒搞定
  18. 天翼云服务器安装宝塔面板
  19. 《引爆流行》:Web2.0的传播理论
  20. 九龙证券|三元锂离子电池和磷酸铁锂离子电池的特点和优劣势详解

热门文章

  1. UnityShader21:程序纹理
  2. 牛客网暑期ACM多校训练营(第三场): A. Ternary String(欧拉降幂+递推)
  3. Codeforces Round #460 (Div. 2): E. Congruence Equation(枚举)
  4. flink在k8s上的部署和使用教程
  5. solrcloud 7.5在k8s上的部署安装和使用教程
  6. python爬虫案例——百度贴吧数据采集
  7. jquery层次选择器:空格 > next + nextAll ~ siblings
  8. c#ftp操作全解:创建删除目录,上传下载文件,删除移动文件,文件改名,文件目录查询
  9. markdown实现公式内实现换行(简单版)\\
  10. JS(JQuery)操作Array的相关方法