使光标指针忙

时间:2017-03-29 23:03:12

标签: asp.net vb.net webforms

我的代码如下:

Protected Sub unearned_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles unearned_run.ServerClick
    Dim DataOut As String "a,b,c"
    unearned_span.InnerHtml = unearned_policytype.Value
    Response.Clear()
    Response.AddHeader("Content-Disposition", "attachment; filename=Unearned.csv")
    Response.ContentType = "application/octet-stream"

    Response.AddHeader("Content-Length", DataOut.Length())
    Response.Write(DataOut)
End Sub

和html:

<form id="form1" runat="server">
    <div id="unearnedreport" style="display:none">
        <input id="unearned_run" type="button" runat="server" value="Run Report" />
        <span id="unearned_span" runat="server"></span>
     </div>
</form>

我想解决的问题是,当报告运行时,我没有得到繁忙的指针。但是,如果将指针悬停在浏览器窗口的最底部,我会得到一个繁忙的指针;特别是在有菜单选择放大倍数的区域。

注意:我不是Windows程序员,所以如果你能对我对.NET的了解做出很多假设,我会很感激。

3 个答案:

答案 0 :(得分:3)

你提到你不是“Windows程序员”,但如果这是windows而不是web,答案就很容易了。 在Windows中,您将放置一行代码

  

Cursor.Current = Cursors.WaitCursor; //事件处理程序启动

     

Cursor.Current = Cursors.Default; //事件处理程序结束

在asp.net webforms环境中,您必须意识到浏览器上的click事件会导致页面回发到服务器,然后您的代码在服务器上运行,然后在服务器上生成html并且仅当您的Response.Write(DataOut)完成后,服务器上的此页面将返回客户端浏览器以进行呈现。 所以你需要在实际的客户端浏览器中运行一些东西(只有javascript可以在客户端工作)来显示一个视觉提示,这个提示将继续显示,直到服务器完成并且你的响应页面开始在浏览器中显示。看看C# Webforms show Loading indicator during code execution 如果您发现链接示例有用,请向该用户(Dennis R)提供赏金。

答案 1 :(得分:1)

我们可以通过使用BlockUI一个可以集成到asp.net Webforms中的Jquery插件来实现这一点,你不仅可以在每个应用程序中使用它,它可以用来等待用户直到动作完成

以下是您与应用程序集成的方式:

  1. 将Jquery和Block UI脚本标记添加到页面

  2. UiBlock课程添加到您的unearned按钮

  3. 添加以下脚本

       $('.UiBlock').click(function () {
            $('.blockMe').block({
    
                css: {
                    border: 'none',                          
                    backgroundColor: '#fff',
                    '-webkit-border-radius': '10px',
                    '-moz-border-radius': '10px',
                    opacity: .8,
                    color: '#000'
                }
            });
        });
    
  4. 在调用服务器代码之前,在每次点击事件中都会调用它,并在获取数据后将其关闭。

    我们实施了它并且也适合您的需要。

答案 2 :(得分:0)

你需要一个.net的javascript异步库的引用,以及更新代码的其他代码,让.net为你做这个,如果确实你想把它留给你生成的所有javascript你。

您还需要在更新面板中放置您想要处理的任何代码。

这应该可以帮助您入门:

https://msdn.microsoft.com/en-us/library/bb386573.aspx

一旦你掌握了这个,并想要一个鼠标指针改变,而不是说show“loading image gif”,你也可以用更多代码来做。