c# - 异步删除显示数据的问题
问题描述
我正在使用以下代码进行测试以显示数据,然后在一段时间后使用异步将其删除。
我遇到的问题是我想显示标签和文本,然后执行异步但是异步在我的代码的第一部分之前运行。
有没有一种方法可以让我先运行代码然后执行异步等待?
<form id="form1" ondatabound="Page_Load()" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label" Visible="false"></asp:Label><br /><br />
<asp:Button ID="Button1" class="btn btn-error" OnClick="Button1_Click" runat="server" Text="Button" /><br /><br />
<asp:TextBox ID="TextBox1" ReadOnly="false" Text="" Visible="true" runat="server"></asp:TextBox><br /><br />
<asp:TextBox ID="TextBox2" ReadOnly="false" Text="" Visible="true" runat="server"></asp:TextBox><br />
</div>
</form>
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//TextBox1.Text = "TestEmail";
//TextBox2.Text = "TestPassword";
}
//When Button1 is clicked then show/hide the title label
protected void Button1_Click (object sender, EventArgs e)
{
if (Label1.Visible == false)
{
Label1.Visible = true;
Label1.Text = "Please use this link to login: www.test.com";
TextBox1.Text = "TestingData";
}
else
Label1.Visible = false;
ClearMessages();
}
public async Task SyncTest()
{
await Task.Delay(5000); // 5 second delay
this.ClearMessages();
}
protected void ClearMessages()
{
TextBox1.Text = "";
TextBox2.Text = "";
Label1.Text = "";
}
}
解决方案
正如我在评论中提到的。一旦页面被渲染,后端就不再与页面连接,因此它不能清空文本。解决这个问题的更好方法是通过在客户端调用脚本来清理它
Page.ClientScript.RegisterStartupScript(GetType(), "cleanText", "cleanText());", true);
这将调用下面的方法,该方法将在 5 秒后清空 textbox1。
function cleanText(){
setTimeout(function() {
var txt1 = document.getElementById('<%= TextBox1.ClientID %>');
txt1.value = "";}, 5000);
}
推荐阅读
- codenameone - 在命令行或直接在代号一个资源文件中插入数据
- c# - 拥有静态 IReadOnlyDictionary 字段是否是线程安全的?
- jdbc - Kafka Source Connect 似乎没有做任何事情
- mysql - 在运行 nginx 入口控制器 kubernetes 时需要(内部)服务名称
- node.js - 除了全局变量之外,是否还有其他需要通用节点模块的替代方法?
- objective-c - 在 dispatch_async 队列中的 weakself(dispatch_get_main_queue(), ^{})
- python - 如何通过剪贴板仅读取从 Excel 复制到 pandas DF 的非相邻列?
- html - 如何检查视频是否支持对象拟合
- android - 如何使 CardView 居中并获得正确的颜色背景?
- python - Python import 语句只识别来自某些目录的包?