运行完所有其他代码后,将显示模式弹出加载屏幕
本文关键字:模式 显示 屏幕 加载 其他 代码 运行 | 更新日期: 2023-09-27 18:24:19
我有一个web表单,它接受用户输入,生成动态SQL查询,并将结果输出到网格视图。
SQL可能需要一段时间才能运行,所以我使用Bootstraps模式弹出窗口制作了一个加载屏幕。这个想法是在SQL运行时显示加载屏幕。
然而,加载弹出窗口出现在AFTER网格视图中填充了结果之后,这有点违背了加载屏幕的点!!!
有人能告诉我为什么会发生这种情况,并帮助我找到潜在的解决方案吗?
C#
protected void btnRun_Click(object sender, EventArgs e)
{
//Display the loading popup
ClientScript.RegisterStartupScript(this.GetType(), "alert", "ShowLoading();", true);
//Declaring the SQL statement to be passed to the database
SqlDataSource SqlDataSource1 = new SqlDataSource();
SqlDataSource1.ID = "SqlDataSource1";
this.Page.Controls.Add(SqlDataSource1);
SqlDataSource1.ConnectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
SqlDataSource1.SelectCommand = "SQL Command Here";
gvResults.DataSource = SqlDataSource1;
gvResults.DataBind();
}
JavaScript
function ShowLoading() {
$("#btnShowModalLoading").click();
}
ASPX
<button id="btnShowModalLoading" type="button" class="btn btn-info btn-lg hide" data-toggle="modal"
data-target="#modalLoading">
Open Modal</button>
模态
<div id="modalLoading" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-body">
<h2>
Please Wait...</h2>
<div class="progress">
<div class="progress-bar progress-bar-striped active" role="progressbar" style="width: 100%">
</div>
</div>
</div>
</div>
</div>
</div>
您正在服务器端OnClick处理程序中注册ClientStartupScript。这意味着,当处理程序完成并通过Postback或Ajax返回数据时,脚本才会运行。
您需要附加一个客户端onclick事件,例如通过jQuery或按钮的onclientclick
属性,这就是打开模态的代码所在。
这是对请求的响应。为了实现这一点,你需要让你的运行按钮点击显示加载模式,然后在那里用javascript提交。