2010-04-20 54 views
3

我有一个imagebuttons的gridview,其中每个启动该项目的报告页面。报告需要10-15秒才能运行,所以我想要一个弹出窗口“生成报告,请稍候”类型的东西。我可以想到几种方法,但希望那些比我更有经验的人的意见。我正在考虑的选项:C#ASP.NET中的“请稍等”屏幕页面。最佳实践?

a)将我的图像按钮链接到一个中间页面,上面写着'please wait',然后将它引用到从那里的报告页面。似乎有点笨拙 b)调查使用jquery或类似的。我有telerik控件,他们有几件事情,但不清楚是否合适。 c)定义某种CSS层的有请稍候就可以了警告,并使其可见作为按钮的onclick事件 d的一部分)。看看jQuery的或类似的

有什么想法?

谢谢!

回答

4

我使用透明度Div,它非常酷且简单。试一试。

<div id="ModalPopup" style="visibility: hidden;"> 
    <div style="position: fixed; width: 100%; height: 100%; z-index: 10002; background-color: Gray; 
    filter: alpha(opacity=70); opacity: 0.7;"> 
    &nbsp; 
    </div> 
    <table style="position: fixed; width: 100%; height: 100%; z-index: 10003;"> 
    <tr> 
     <td align="center" valign="middle"> 
     <div style="color: Black; font-weight: bolder; background-color: White; padding: 15px; 
      width: 200px;"> 
      <asp:Image ID="Image3" runat="server" ImageUrl="~/Images/progress.gif" /> 
      Procesando.... 
     </div> 
     </td> 
    </tr> 
    </table> 
    </div> 

要显示在div,使用这个JavaScript:

的document.getElementById( 'ModalPopup')style.visibility = '可见的'。

+0

感谢队友。我把它放在我的按钮所在的“第一”表单上,但它从一开始就是可见的。你如何使它看不见,然后让用户点击按钮后出现?我不是JS的家伙...... :) – Glinkot 2010-04-20 06:01:16

+0

添加此样式哟主div样式=“display:none” 然后在您的buton上添加onClientClick =“document.getElementById ['ModalPopup']。style.visibility ='visible '“ – alejandrobog 2010-04-20 13:39:04

+0

嗨阿列杰,我已经尝试了一些这种变种,迄今为止没有运气!不幸的是,没有空间来粘贴代码。我已经把这个onclientclick事件放到了一个按钮上,但是它只是发回而没有让div可见。如果您碰巧有一个.aspx文件显示它正在运行,如果您可以将它移动到[email protected]那将会非常出色。欢呼队友 – Glinkot 2010-04-21 05:08:53

1

我有完全相同的问题,但我发现AJAX服务器控制UpdateProgress非常有用。这是一个链接到UpdateProgress控制。

+0

谢谢你 - 这似乎是部分页面更新?在目前的情况下,我正在从一个页面移动到另一个页面。不确定在这种情况下它是否有效? – Glinkot 2010-04-20 06:02:08

0

您可以在页面上有一个,其中style设置为display:none。一个按钮(您将用它来执行一个动作)将执行一个javascript函数,它将在点击时将的样式设置为display:block