首页 > 代码库 > 服务器控件的异步请求——UpdatePanel和ScriptManager
服务器控件的异步请求——UpdatePanel和ScriptManager
aspx文件里面有以下一段代码
<body> <form id="form1" runat="server"> <div> <%=DateTime.Now %> <uc1:UserControl runat="server" ID="UserControl" /> </div> </form></body>
注:UserControl1是外部拖拽进来的一个DropDownList用户控件,切换选项时可以触发页面刷新,可以换成其它的控件,只要能触发刷新就行
运行效果是什么呢?由于获取时间和用户控件的线程是同步的,所以每次切换用户控件都将改变页面上显示的时间。
那如何使得用户控件操作不刷新整个页面,而只刷新自己呢?(这里有点拗口,总之理解为DropDownList选项切换时其它的保持原样而不刷新就行)
这里可以使用两个服务器控件达到目的:UpdatePanel和ScriptManager
我们尝试着在上面的基础上插入几行代码,注意两次代码的区别:
<body> <form id="form1" runat="server"> <div> <%=DateTime.Now %> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <uc1:UserControl runat="server" ID="UserControl" /> </ContentTemplate> </asp:UpdatePanel> </div> </form></body>
我在这里先是添加了一个ScriptManager,然后再用一个UpdatePanel将DDL控件给包了起来
注:<ContentTemplate>的作用是定义更新面板的内容模板,也就是放在这里面的内容才是需要更新的
这次的运行效果是什么呢?
不管怎么切换下拉框的选项,都不会导致页面上时间的改变。
原因是,经过这一处理后,下拉框用户控件选项的改变成了异步请求,不会刷新整个页面,所以前面的时间也不会重新得到获取,因此不会改变
(完)
服务器控件的异步请求——UpdatePanel和ScriptManager
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。