【问题标题】:Show loading animation (div element), during code behind execution (c# and asp net)在代码执行期间显示加载动画(div 元素)(c# 和 asp net)
【发布时间】:2018-06-08 09:12:26
【问题描述】:

我在我的代码中使用了以下加载动画。我希望它在我创建的 Excel SQL 导入期间可见。 Excel 导入是使用 c# 和后面的代码完成的。以下按钮正在触发导入脚本:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
   <asp:UpdatePanel runat="server" id="UpdatePanel" updatemode="Always">
      <ContentTemplate>
         <asp:Button ID="savebutton" ClientIDMode="Static" class="button" runat="server" Text="Submit" Visible="True" OnClick="Savebutton_Click" />
      </ContentTemplate>
   </asp:UpdatePanel> 

这是我的加载动画:

<!-- Loading Element -->
<div runat="server" visible="false" id ="loading" class="loader"></div>

我的问题是,每次我开始导入并且一开始我使用"loading.Visible = true;" 时,元素在导入/代码执行完成之前是不可见的。

我需要从一开始就显示它。我希望在加载过程完成后隐藏它。我尝试了多种通过 javascript 和 C# 显示动画的方法,但到目前为止没有任何效果。

希望你能帮帮我..

非常感谢

亲切的问候

不爽

【问题讨论】:

    标签: javascript c# asp.net


    【解决方案1】:

    首先放置visible="false" 将导致完全不呈现控件。因此,您在客户端没有可用的 div,因此您无法显示它。

    作为第二个,您可以为此使用UpdateProgress 控件。

    但是要回答你的问题。您必须处理按钮单击客户端。因此,与其直接触发服务器端事件,不如先显示您的 div。

    在触发按钮之前添加OnClientClick="showDiv()" 处理客户端

    <asp:Button ID="savebutton" class="button" runat="server" Text="Submit" OnClientClick="showDiv()" OnClick="Savebutton_Click" />
    
    //the js to remove imHidden from className
    function showDiv() {
      document.getElementById('<%=loading.ClientID%>').className = "loader";
    }
    

    添加一个类来隐藏 div 而不是使用可见的,这样 div 将呈现给客户端但不会显示

    <div id ="loading" runat="server" class="loader imHidden"></div>
    

    css

    .imHidden {
      display: none;
    }
    

    还要在更新面板中设置你的加载 div,这样它就会将自己更新回原来的隐藏状态

    【讨论】:

    • 我尝试了你提到的,但是无法将执行绑定到按钮,因为有几个 if 语句可能会阻止上传发生,所以加载动画在这点。但是当我尝试做这样的事情时: ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "value", "show_loader();", true);整个脚本运行后,加载动画仍然开始。似乎 C# 不允许 javscript 函数在完成之前运行..
    • @Shazy 我没有发现问题。加载动画会更短,您将向用户反馈正在发生的事情。希望您可以根据自己的需要调整给定的示例
    • @Shazy RegisterStartUpScript 完全符合其名称。您正在离线工作。这意味着脚本在从服务器到达客户端时被触发。它返回客户端的唯一时刻是在服务器上执行了所有代码之后。导致你现在的行为。
    猜你喜欢
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多