惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
D
Docker
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
T
Tenable Blog
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
The Hacker News
The Hacker News
Project Zero
Project Zero
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Cyberwarzone
Cyberwarzone
The Register - Security
The Register - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Vercel News
Vercel News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
U
Unit 42
Scott Helme
Scott Helme
A
About on SuperTechFans
WordPress大学
WordPress大学
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
G
GRAHAM CLULEY
Latest news
Latest news
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Schneier on Security

博客园 - 章立民研究室

我在點部落 笑談我的學習之路 下一代网页开发技术Silverlight——笑谈程式人生系列讲座之二 确保您的Silverlight 1.0运行时间组件是最新版本 ToolkitScriptManager VS ScriptManager 如何于撰写 Silverlight 1.0 的XAML时拥有Intellisense Silverlight 1.0 RC SDK 预览 新世代网站开发技术ASP .NET AJAX——章立民北京研讨会 PPT下载 新世代网站开发技术ASP .NET AJAX——章立民北京研讨会邀请函 读者询问是否一定要安装ASP.NET AJAX Extensions 答读者问 SQL Server - 请问数据库字段加密问题 读者“翔”询问如何于asp.net中删除目录 读者问与答 答读者问 Visual C# - 读者询问如何复制目录以及目录下所有的子目录与文件 Visual C# 2005 – 如何使用通配符 *.* 复制所有文件 新书出版了 SQL Server 2005 - 如何利用CLR存储过程读取与写入二进制影像数据
读者问与答
章立民研究室 · 2007-07-17 · via 博客园 - 章立民研究室

原发问问题章老师你好,我目前有个有关UpdateProgress的小问题想请教您~~~在我的程序画面中,有个用来显示讯息的Label,旁边亦放置了一个UpdateProgress,当我按「新增数据」按钮,UpdateProgress 会显示请用户稍候的讯息,但是当这个UpdateProgress在显示数据的时候,它外面的那个Label讯息会显示前一个动作留下的讯息,例如,我第一次新增完数据后讯息列会显示「数据已成功新增」的讯息,但是第二次执行新增时,画面的updateprogress跟它外面的Label会一起出现耶,所以~~~请问老师有没有方法能在updateprogress显示讯息的那段期间将外面显示讯息的Label先隐藏掉,等updateprogress消失时再把Label显示出来呢?解答亲爱的Cody读者您好,很感谢您对于章立民研究室的支持,有关于您提到的问题,回复如下:


图表1
图表2


图表1与图表2所示者是网页范例的执行画面,这是一个以Web服务当作数据来源(Data Source),结合 FormView 控件来新增数据的接口,基本上,当用户按下 FormView 控件上的「加入」按钮之后,就会呼叫 Web 服务的方法,将 FormView 上所有字段的数据写入一个 XML 文件。


图表3

图表4


值得注意的是,如图表3与图表4所示,用户第一次按下按钮之后,网页范例会立刻显示一个 UpdateProgress 控件,以提示用户「正在写入资料中,请稍候的讯息,待成功写入数据之后,原本的 UpdateProgress 控件会隐藏起来,并显示一个「已成功新增数据」的讯息,而当用户第二次之后按下按钮时,网页范例会马上将刚刚的成功讯息隐藏,并接续之后的数据写入动作,成功写入数据的结果如图表5所示。


图表5
图表6


网页范例的设计画面如图表6所示,从图表中可以发现,刚刚显示「已成功新增数据」的讯息的控件是一个 Label 控件,而该控件之所以能够在网页范例成功写入数据之后显示讯息的原因,是因为我们在网页范例的类别加入一个用来判断处理结果的属性,并且分别在ObjectDataSource1数据来源Inserted事件的事件处理例程,以及FormView1控件PreRender事件的事件处理例程中,判断该属性所代表的布尔值,以便能够正确显示或隐藏 Label 控件,兹将程序代码摘要列示如下:Partial Class DemoForm001
    Inherits System.Web.UI.Page    Protected Property InsertCompleteOrNot() As Boolean
        Get
            If ViewState("InsertCompleteOrNot") IsNot Nothing Then
                Return ViewState("InsertCompleteOrNot")
            Else
                Return False
            End If
        End Get
        Set(ByVal Value As Boolean)
            ViewState("InsertCompleteOrNot") = Value
        End Set
    End Property        Protected Sub FormView1_PreRender(ByVal sender As Object, _
      ByVal e As System.EventArgs) _
      Handles FormView1.PreRender
        Dim myFormView As FormView = CType(sender, FormView)
        Dim myLabel As Label = CType(myFormView.FindControl("Label6"), Label)
        If Me.InsertCompleteOrNot Then
            myLabel.Text = "已成功新增资料"
            myLabel.Visible = True
        Else
            myLabel.Text = ""
            myLabel.Visible = False
        End If
        Me.InsertCompleteOrNot = False
    End Sub    Protected Sub ObjectDataSource1_Inserted(ByVal sender As Object, ByVal e As _
      System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs) _
      Handles ObjectDataSource1.Inserted
        If e.AffectedRows = 0 Then
            Me.InsertCompleteOrNot = False
        Else
            Me.InsertCompleteOrNot = True
        End If
    End Sub
End Class为了让第二次之后的异步回传在执行之前,能够将 FormView 控件所显示的处理成功讯息隐藏起来,请替 PageRequestManager 对象的 initializeRequest 事件撰写一个 JavaScript 事件处理例程,以便取得 FormView 控件显示成功讯息的 Label 控件,并修改该控件的 CSS 属性设定来隐藏它:<script type="text/javascript" language="javascript">
  Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(hideLabel);
 
  function hideLabel()
  {
   var label = $get("FormView1_Label6");
  
   if(label)
   {
    label.style.visibility = "hidden";
   }
   return true;
  }
</script>欲详细了解 PageRequestManager 对象,请阅读ASP.NET AJAX 经典范例 100/使用 VB一书的第 5 『悠游于异步之间,探索 PageRequestManager