Alats2种局部刷新的比较
第一种是 .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种局部刷新的比较相关推荐
- Flutter局部刷新
在Flutter中,如果我们想要更新页面中的某个widget的状态的话,一般会使用setState方法重走build方法来刷新.当页面布局复杂的时候,这样肯定是不行的. 下面提供了两种局部刷新的方式, ...
- 前端局部刷新的几种方式
1. 通过img标签请求,实现局部刷新.实现方式向页面插入一个img标签,监听其加载,加载成功则表示请求成功,做出相应的处理:加载补充表示请求补充,也作出相应的处理. button.addEventL ...
- 局部刷新的两种实现方式
最近忙于上海东方有线的项目,客户需要一些下拉框的局部刷新功能,我参看了其他同事的代码,发现并未实现数据的异步传输,而是采用from局部提交的方式.以下是整理出来的经典下拉列表局部刷新功能Example ...
- 两种方式实现局部刷新
嗯,在这里我们主要讨论一下在使用Struts 2.5时最常遇到的一个问题:页面局部刷新.Struts是一个MVC模型,因此常见的返回结果类型为一个页面,它可以是jsp.freemarker或者velo ...
- 页面局部刷新三种方法
页面局部刷新 1.使用ajax实现小部分的内容局部刷新 $.ajax({ url:"http://localhost:8080/intoHomepage.do", type:&qu ...
- redux 局部刷新_如何使用Redux Observables和刷新令牌API获取新的访问令牌
redux 局部刷新 by Sachin Kumar 由Sachin Kumar 如何使用Redux Observables和刷新令牌API获取新的访问令牌 (How to get a new acc ...
- flutter怎么手动刷新_flutter局部刷新的实现示例
局部刷新 我们在做项目的时候,都需要单独的去刷新一个值,而不是把整个界面都重绘.大家都知道setState是进行重绘的一个方法,他会执行生命周期的一个build,这将会使得整个界面来进行重绘.当然我们 ...
- ORM中的事务和锁、Ajax异步请求和局部刷新、Ajax文件上传、日期时间类型的Json、多表查询图书系统
一.ORM中的事务和锁 事务 事务要确保原子性 """ 事务ACID原子性:不可分隔的最小单位一致性:跟原子性是相辅相成隔离性:事务之间相互不干扰持久性:事务一旦确认永久 ...
- ajax 刷新output,JSF生命周期及AJAX局部刷新
这些时间可能一直得搞JSF...... 呵呵,这个星期天再一次的仔细的研究了一下这个所谓的6个生命周期的运行情况以及所谓的AJAX局部刷新的问题. 看了core JSF里详细描述的JSF的生命周期,基 ...
最新文章
- 力扣——按递增顺序显示卡牌
- dos批处理命令详解
- php正则 与 js正则
- Maven原型创建技巧
- 优秀的SharePoint 2013开发工具有哪些(二)
- 操作系统原理:进程 PV 操作如何计算?全网最全三种前驱图计算类型总结
- python rs232_使用Python進行RS-232通信返回垃圾信息
- Ansible playbook
- Java字节流和字符流区别
- mysql replication 延时_MySQL:延迟的主从复制 ( Delayed Replication )
- 【转】我眼中的自动化测试框架设计要点
- Redis 两种持久化方式的原理
- DNS DDNS NBNS mDNS LLMNR LLDPDU SSDP协议
- 查看html源代码编码,查看网页源代码全是乱码,但前台页面可以正常显示
- 韩信点兵问题的简单算法 downmoon
- 计算机设计项目符号和编号,项目符号和编号
- 计算机文字转表格,Word怎么把文字转换成表格 30秒搞定
- 天翼云服务器安装宝塔面板
- 《引爆流行》:Web2.0的传播理论
- 九龙证券|三元锂离子电池和磷酸铁锂离子电池的特点和优劣势详解
热门文章
- UnityShader21:程序纹理
- 牛客网暑期ACM多校训练营(第三场): A. Ternary String(欧拉降幂+递推)
- Codeforces Round #460 (Div. 2): E. Congruence Equation(枚举)
- flink在k8s上的部署和使用教程
- solrcloud 7.5在k8s上的部署安装和使用教程
- python爬虫案例——百度贴吧数据采集
- jquery层次选择器:空格 > next + nextAll ~ siblings
- c#ftp操作全解:创建删除目录,上传下载文件,删除移动文件,文件改名,文件目录查询
- markdown实现公式内实现换行(简单版)\\
- JS(JQuery)操作Array的相关方法