我在我的代码中使用以下加载动画。我希望它在我创建的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#显示动画,但到目前为止没有任何效果。
我希望你能帮帮我..
非常感谢
亲切的问候
Shazy
答案 0 :(得分: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;
}
还要在updatepanel中设置你的加载div,以便它自己更新回原来隐藏的