• UpdatePanel 控件失效,不能局部刷新


          最近在看ASP.NET 4 入门到精通,看到AJAX 一章中的 UpdatePanel 。平时AJAX估计都不会使用这种控件,一般都直接javascript 脚本实现异步局部刷新,但既然微软提供了这个控件,那就了解一下也好。本以为很简单,而实际上也很简单,但我在按着教程做的时候,走入了个误区,然后 UpdatePanel  控件一直都没什么反应,也无法出现和书籍中相同的结果。上网搜索了好一会,也没能解决什么问题,都是说设置这个设置那个,但实际上 UpdatePanel 控件从工具箱拖出来的时候的默认设置就是可以局部刷新的。

      最后发现,我用vs 是新建网站,不是新建项目,而 UpdatePanel 在新建项目中可以正常运行。其实 WebSite 和 Application 的区别了解不是特别清楚,只知道网站是请求过来时服务器再动态编译,而项目则要先编译成dll才能运行,有空要看看MSDN 的文档。 关键是不知道为什么网站不能用UpDatePanel 呢? 上个简单例子先:

      先是ASPX 页代码如下:

     <form id="form1" runat="server">
            <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" ChildrenAsTriggers="true">
                <ContentTemplate>
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                    <br/>
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
                </ContentTemplate>
            </asp:UpdatePanel>
    </form>

      

      然后是隐藏代码页代码:

    public partial class UpdatePanel : System.Web.UI.Page
    {
            protected void Page_Load(object sender, EventArgs e)
            {
                Label2.Text = DateTime.Now.ToString();
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                Label1.Text = System.DateTime.Now.ToString();
            }
    }

      其实没什么特别的,点击按钮,会发现 UpdatePanel1 控件中的 Label1 显示的时间会刷新,但 UpdatePanel1 控件外的 Label2 控件显示的时间是最初加载显示的时间,结果如下:

      

  • 相关阅读:
    tornado用户指引(三)------tornado协程使用和原理(二)
    利用tornado使请求实现异步非阻塞
    在tornado中使用异步mysql操作
    Tornado 线程池应用
    Tornado异步与延迟任务
    tornado用户指引(二)------------tornado协程实现原理和使用(一)
    Tornado用户指引(一)-----------异步和非阻塞I/O
    Tornado异步之-协程与回调
    Python核心框架tornado的异步协程的2种方式
    c++ Map使用
  • 原文地址:https://www.cnblogs.com/lhgohead/p/6099716.html
Copyright © 2020-2023  润新知