[转载].NET ASP.NET 中web窗体(.aspx)利用ajax实现局部刷新
之前开发的一套系统中用到了大量的 checkboxList 控件,但是每次选定之后都会刷新整个页面,用户体验很差,百度了之后查到这篇文章,尝试了一下可以实现,所以转载了过来,记录一下,也给其他有相同困扰的朋友一个解决的办法。
********************分割线********************
C#所有runat="server"的控件都会造成整个界面的刷新,如果想实现局部刷新,可以利用ajax。需要加入的控件有ScriptManager和UpdatePanel,可以实现只刷新UpdatePanel内的内容。
C#中已经将AJAX封装到了一个控件中,可以很简单的实现,使用方法有点类似panel:
例:在前台aspx文件中:
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><br />
<div style="text-align: center; color: Blue; font-size: larger">
不需要刷新的内容
</div>
<div style="text-align: center">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DataList ID="DataList1" runat="server"></asp:DataList>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<br />
<div id="divButton" style="text-align: center"></div>
</div>
</form>
</body>
其中 <asp:ScriptManager> 就是实现AJAX的控件,需添加在所有页面内容的最上面,扔在最上面就行,标签之间不用添加内容。<asp:UpdatePanel> 以</asp:UpdatePanel>结尾,在该区域内的刷新内容时,不会刷新整个页面,标签之间为局部刷新的内容。
后台页面,只需要按照原来的需要对datalist等进行相应的操作,不需要对<asp:ScriptManager >, <asp:UpdatePanel>进行操作,另外,<asp:ScriptManager >,<asp:UpdatePanel >在VS2008之后,可以在工具箱(ToolBox)中的AJAX Extensions 下找到,在VS2005中,需要安装AJAX插件才能使用。
注意事项:
(1)ScriptManager要放在UpdatePanel的前面。
(2)UpdatePanel内的控件只能影响UpdatePanel内的控件,不能影响外面的控件,而外面的控件则可以影响UpdatePanel内的。
常见错误
(1)类型“System.Web.UI.UpdatePanel”不具有名为“DropDownList”的公共属性
解决方法:其实原因很简单。就是少了一个<ContentTemplate></ContentTemplate>
例:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<asp:DropDownList ID="ddlUsed" runat="server">
<asp:ListItem Text="百度" Value="-1"></asp:ListItem>
<asp:ListItem Text="谷歌" Value=""></asp:ListItem>
<asp:ListItem Text="新浪" Value=""></asp:ListItem>
</asp:DropDownList>
</asp:UpdatePanel>
正确的如下:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlUsed" runat="server">
<asp:ListItem Text="百度" Value="-1"></asp:ListItem>
<asp:ListItem Text="谷歌" Value=""></asp:ListItem>
<asp:ListItem Text="新浪" Value=""></asp:ListItem>
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
(2)类型“ScriptManager”的控件“ScriptManager1”必须放在具有 runat=server 的窗体标记内
错误原因:<asp:ScriptManager ID=“ScriptManager1” runat=“server”></asp:ScriptManager>这个内容必须放在<form>标记内。
————————————————
版权声明:本文为CSDN博主「用得到就留个赞GH」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43434300/article/details/100092123
[转载].NET ASP.NET 中web窗体(.aspx)利用ajax实现局部刷新的更多相关文章
- asp.net mvc3 利用Ajax实现局部刷新
1.利用Ajax.ActionLink()方法 首先在_Layout.cshtml文件中加载 运行AJAX必要的Jquery <script src="@Url.Content(&qu ...
- ASP.NET中 WebForm 窗体控件使用及总结【转】
原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A, ...
- Asp.net中web.config配置文件详解(一)
本文摘自Asp.net中web.config配置文件详解 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信息,包括数据库连接字符.身份安全验证等,可以出现在Asp. ...
- 【转载】ASP.NET中Server.MapPath方法获取网站根目录总结
在ASP.NET网站应用程序中,可以通过Server.MapPath方法来获取跟服务器有关的目录信息,如获取网站的根目录.获取当前代码文件所在的目录路径.获取当前代码所在路径的上级路径等.Server ...
- 【转载】Asp.Net中使用基于jQuery的javascript前台模版引擎JTemplate
JTemplate是基于jQuery的开源的前端模版引擎,在Jtemplate模板中可以使用if判断.foreach循环.for循环等操作,使用Jtemplate模板优点在于ajax局部刷新界面时候不 ...
- 【转载】Asp.Net中Cookie对象的作用以及常见属性
Cookie对象是服务器为用户访问存储的特定信息,这些信息一般存储在浏览器中,服务器可以从提交的数据中获取到相应的Cookie信息,Cookie的最大用途在于服务器对用户身份的确认,即票据认证,用户会 ...
- 【转载】Asp.Net中应用程序的事件响应次序
Asp.Net应用程序事件响应次序是指Application事件的相应次序,涉及到的事件包括Application_Start事件.BeginRequest事件.AuthenticateRequest ...
- 【译】在Asp.Net中操作PDF - iTextSharp - 利用列进行排版
原文 [译]在Asp.Net中操作PDF - iTextSharp - 利用列进行排版 在使用iTextSharp通过ASP.Net生成PDF的系列文章中,前面的文章已经讲述了iTextSharp所涵 ...
- 【译】在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本
原文 [译]在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本 本篇文章是讲述使用iTextSharp这个开源组件的系列文章的第三篇,iTextSharp可以通过As ...
随机推荐
- Ubuntu的系统应用
1:最近在苹果笔记本做了双系统,启动电脑后还是蛮酷的,但是ubuntu系统安好后,没有wifi图标,于是必须连接有线网络,更新数据包才可以. 2: 常用命令 查看软件xxx安装内容#dpkg ...
- Flutter 你需要知道的那些事 01
公众号「AndroidTraveler」首发. 1. width 属性 对于设置控件宽度填充父控件这件事情,在 Android 里面,只需要设置 MATCH_PARENT 即可. 但是在 Flutte ...
- 为什么 Redis 为什么如此受欢迎
现在大多数开发人员都会听说过 Redis.Redis 是目前市场上最好的开源内存 NoSQL 数据库之一.它为前端以及后端服务(如键值查找,队列,哈希等)提供了非常多的帮助. 一.什么是 Redis? ...
- ACM-ICPC 2018 沈阳赛区网络预赛 J. Ka Chang(树上分块+dfs序+线段树)
题意 链接:https://nanti.jisuanke.com/t/A1998 给出一个有根树(根是1),有n个结点.初始的时候每个结点的值都是0.下面有q个操作,操作有两种,操作1.将深度为L(根 ...
- Python学习笔记2基本语法规则_20170611
# 1.print 显示示例 print('Hello, World!') 逗号分割变量,输出插入空格 name = 'BB' print('AA', name) # output: >> ...
- 树莓派开机主动发送自己的局域网ip/外网ip到你的微信
开机时,树莓派主动发送自己的内网ip以及公网ip到你的微信上,这样就能方便地使用ssh或VNC. 操作步骤 下载目录下的 boot_getIP_send_Wechat.py 到你的 Raspberry ...
- arduino (3) 控制sim900A发送短信
狗屎佳世通旗舰店,卖的什么破玩意sim900a芯片,不支持联通卡,还生明模块支持双卡的 之前买的esp8266-07都是内存偷工减料 买的液体浊度传感器给的原理图也不给基本接线. 差评垃圾店,你敢卖就 ...
- <Array> 277 243 244 245
277. Find the Celebrity knows(i, j): By comparing a pair(i, j), we are able to discard one of them 1 ...
- appium--使用PyYAML封装Capability
前戏 YAML 语言的设计目标,就是方便人类读写.它实质上是一种通用的数据串行化格式. 它的基本语法规则如下. YAML大小写敏感: 使用缩进代表层级关系: 缩进只能使用空格,不能使用TAB,不要求空 ...
- Luogu P4341 [BJWC2010]外星联络
题目描述 暴力思路: 暴力枚举子串,插入trie树中,按字典序输出大于1的end的值 时间复杂度:n3 结果:TLE 0分 ...非常尴尬的一点不剩 正解思路 经过观察发现,可以只枚举后缀,统计时输出 ...