我开发了一个页面,当用户点击按钮时,在查询后可以下载xlsx。 查询可能需要几秒钟,因此我想在操作期间隐藏按钮。
我知道这通常是一个简单的操作,通过按钮上的js:
animaor.Play("runningright");
脚本结束时和服务器端:
<asp:ImageButton id="Bt" OnClientClick=" this.style.display = 'none'; />
但是为了使xslx我使用这段代码:
Bt.Style.Add("display", "inline");
明确响应上下文不允许我在脚本中运行其他javascript代码(它只是不起作用),所以我不知道如何将按钮的可见性设置为内联。
答案 0 :(得分:0)
ADyson在评论中提出的建议是正确的。没有舒适的解决方案来解决这个问题。 顺便说一句,我做了一个解决这个问题的技巧,它有点蹩脚,但它很容易,而且很有效。如果它对我发布的任何人都有用。
try
{
...
}
catch
{
...
}
finally
{
script = "document.getElementById('Bt').style.display = 'inline';";
if(add_click)
script += "document.getElementById('Bt_Download_Hidden').click();";
Page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "alert", @"
<script type=""text/javascript"">
" + script + @"
</script>");
}
在按钮之前我完成了所有的工作,我只是准备xlsx并将结果路径存储在会话变量中。 正如您在finally子句中看到的那样,我运行一个脚本,该脚本始终将按钮的可见性设置为内联,最后,如果一切正常,则单击隐藏按钮。在第二个按钮中,我将代码下载到文件中。 所以我强迫冲洗操作成为最后一次。