• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[转载].NETASP.NET中web窗体(.aspx)利用ajax实现局部刷新

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

之前开发的一套系统中用到了大量的 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="0"></asp:ListItem>
<asp:ListItem Text="新浪" Value="1"></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="0"></asp:ListItem>
<asp:ListItem Text="新浪" Value="1"></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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap