[英]C# hide and show buttons on click
我正在尝试显示执行存储过程的运行按钮,单击时会隐藏并显示另一个按钮,显示“微调器/加载器”按钮,直到执行完成返回运行。
当我单击运行时,尽管我没有看到按钮有任何变化,但程序会执行。 当我删除底部的代码时,存储过程完成后按钮会发生变化。
在我的点击事件的顶部,我有:
btnRun.Visible = false;
LoadButton.Visible = true;
在底部:
LoadButton.Visible = false;
btnRun.Visible = true;
我猜这与回邮有关,这附近有吗?
编辑:这是我的点击事件 -
protected void Run_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(dbString))
using (SqlCommand cmd = new SqlCommand("dbo.ExecuteJob", con))
{
try
{
btnRun.Visible = false;
LoadButton.Visible = true;
System.Threading.Thread.Sleep(100);
string JobName = "CTIOM: " + ddlJob.SelectedItem.Text;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@job_name", JobName);
SqlParameter statusParameter = new SqlParameter
{
ParameterName = "@returnStatus",
SqlDbType = SqlDbType.Int,
//Size = 255,
Direction = ParameterDirection.Output
};
SqlParameter messageParameter = new SqlParameter
{
ParameterName = "@returnMessage",
SqlDbType = SqlDbType.VarChar,
Size = 1000,
Direction = ParameterDirection.Output
};
SqlParameter durationParameter = new SqlParameter
{
ParameterName = "@returnRunDuration",
SqlDbType = SqlDbType.VarChar,
Size = 8,
Direction = ParameterDirection.Output
};
cmd.Parameters.Add(statusParameter);
cmd.Parameters.Add(messageParameter);
cmd.Parameters.Add(durationParameter);
con.Open();
IAsyncResult result = cmd.BeginExecuteNonQuery();
while (!result.IsCompleted)
{
System.Threading.Thread.Sleep(100);
}
cmd.EndExecuteNonQuery(result);
string statusMessage = statusParameter.Value.ToString();
lblStatus.Visible = true;
lblStatus.Text = statusMessage;
string returnMessage = messageParameter.Value.ToString();
lblMessage.Visible = true;
lblMessage.Text = returnMessage;
}
catch (SqlException ex)
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('" + ex.Message.ToString() + "')", true);
return;
}
finally
{
con.Close();
LoadButton.Visible = false;
btnRun.Visible = true;
}
}
}
对元素的更改仅在回发后发送一次,而不是在您更改它们时立即发送。 很确定要完成您正在尝试做的事情(在回发运行时显示微调器),您将需要使用UpdateProgress 控件之类的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.