码迷,mamicode.com
首页 > 其他好文 > 详细

服务器控件的异步请求——UpdatePanel和ScriptManager

时间:2014-12-07 01:13:40      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   sp   for   on   文件   div   

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

标签:style   blog   color   使用   sp   for   on   文件   div   

原文地址:http://www.cnblogs.com/xdxs/p/4149015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!