【问题标题】:Hiding an applet before a long treatment postback在长时间处理回发之前隐藏小程序
【发布时间】:2012-01-17 09:36:55
【问题描述】:

我必须将一个 Java 小程序集成到一个简单的 asp.net 2.0 控件中。

这个小程序是购买的产品,不能修改。它包含一个旨在单击以继续的按钮。按钮点击链接到一个 JavaScript 函数。

所以我们可以把这个小程序看成一个黑盒子,吃完数据并调用一个 JS 函数。

当调用 JS 函数以转到下一页时,我必须进行回发。很简单,我只需要写。但我也想隐藏小程序或包含它的 div,因为回发会触发一些长时间的处理。关键是,在等待的时候,用户可以点击小程序按钮,再次触发回发。

在我的 JavaScript 调用函数中,我尝试了很多解决方案:

  • 进行 2 次回发。当然这不起作用,因为回发是重新加载页面
  • 使用 JavaScript 隐藏/显示 div 或小程序
  • 使用 jQuery 隐藏/显示 div 或小程序
  • 隐藏/显示调用不可见按钮的点击事件的div或小程序在后面的代码中设置Visible = false

但它总是失败:似乎网络浏览器(IE 8.0 或 Chrome)等待回发/JS 函数结束来更新页面,并且不打扰之前的一些 UI 更新。

所以我在这里:

  • 我需要回发才能转到下一页(我不控制使用我的控件的整个环境)
  • 我必须隐藏小程序,否则用户可以重新点击它
  • 我无法创建一个两步过程,例如让 JS 函数隐藏小程序并显示指向下一页的链接,涉及新的点击

我的简单控制:

<%@ Control Language="C#" AutoEventWireup="false" Codebehind="MyControl.ascx.cs"
    Inherits="MyControl" %>
<div id="m_DivPostDisplay" runat="server">
    <asp:Label ID="lblState" runat="server" Text="Displaying something like please wait..." />
</div>
<div id="m_DivAppletContainer" runat="server">
    <applet name="myApplet" archive="./myJar.jar"
        code="Main.class" height="700" width="530" mayscript>
    </applet>
</div>

相关的javascript(页面加载时注入):

<script language='javascript'>
    function sendData(data) {
        // This is where I try to hide the applet or the div
        //.....

        // Go to the next page
        WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(\"nextButtonId\", \"\", true, \"\", \"\", false, true));
    }
</script>

您知道可以采取什么措施来解决我的问题吗? 谢谢:)

【问题讨论】:

  • 我尝试了另一种方法:淡出页面并显示一个不错的“正在加载,请稍候”消息。但是小程序不会淡出,并且小程序缺少像“wmode”这样的参数用于闪存。所以我有一个漂亮的淡出页面,中间有一个闪亮的小程序......

标签: javascript asp.net .net applet postback


【解决方案1】:

丑,不过你可以试试:

function sendData(data) {
  // hide applet
  setTimeout(function () {WebForm_DoPostBackWithOptions(...);}, 500);
}

【讨论】:

  • 是的,丑,但我会试一试!
【解决方案2】:

最后,我们要求小程序编辑器添加一个新功能,因此我们现在可以在需要时禁用它的按钮。

因此,当我们单击按钮时,我们将其保持禁用状态,启动回发,并在回发返回时更改页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    相关资源
    最近更新 更多