c# - C#在点击时隐藏和显示按钮
问题描述
我正在尝试显示执行存储过程的运行按钮,单击该按钮会隐藏并出现另一个按钮,显示“微调器/加载器”按钮,直到执行完成返回运行。
当我单击运行时,尽管我没有看到按钮有任何变化,但程序会执行。当我删除底部的代码时,存储过程完成后按钮会发生变化。
在我的点击事件的顶部,我有:
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 控件之类的东西。
推荐阅读
- r - 在 expss 中创建一个表,显示 freq 和 cpct 但仅在 cpct 列上测试 cpct
- node.js - TypeError: Cannot read property 'send' of undefined for my commands and a TypeError: Cannot read property 'users' of undefined for other commands
- c++ - 以 std::invalid_argument 类型的未捕获异常终止:stoi:无转换
- sql - 如何更改 odbc 中每一列的 vartype?
- sql - 使用 udt 忽略搜索查询中的 null
- r - 重新排序分类变量的蜂群
- python - 根据数据框绘制变量
- git - Git - 如何删除本地历史记录?
- r - 如何用R中另一个文本文件中的值替换文本?
- python - `from tensorflow.keras.metrics import binary_accuracy`与`from tensorflow.metrics import binary_accuracy`有什么区别