我的aspx页面中有一个按钮和两个标签,我想在标签中显示文字,几秒钟后我想在按钮点击时用不同的文字填充第二个标签 我的代码是 源文件
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblFirst" runat="server" Text=""></asp:Label>
<asp:Label ID="lblSecond" runat="server" Text=""></asp:Label>
<asp:Button ID="btnFirst" runat="server" Text="First"
onclick="btnFirst_Click" />
</ContentTemplate>
</asp:UpdatePanel>
和代码文件
protected void btnFirst_Click(object sender, EventArgs e)
{
first();
second();
}
private void first()
{
I am Calling a method form my class file which returns a string , and assigning to label first
//class1 obj=new class1();
//string result=obj.first()
// lblFirst.Text =result;
}
private void second()
{
I am Calling a method form my class file which returns a string , and assigning to label Second
//class2 obj=new class2();
//string result1=obj.Second()
lblSecond.Text = result1;
}
我得到两个回复,我想显示我第一次没有等待第二次回复,第二次回复后应立即显示而不会失去第一反应,请给我任何紧急建议, 是否有其他程序可以获得此类输出
由于 hemanth
答案 0 :(得分:3)
你不能在服务器代码中做出类似的延迟。在服务器代码呈现之前,页面不会发送到浏览器,而是在控制事件之后发生。代码将等待七秒钟,然后呈现页面并将其发送到浏览器。
您必须使用客户端代码来获得您所拥有的体验。服务器发送到浏览器后,无法将更改推送到网页。
protected void btnFirst_Click(object sender, EventArgs e) {
string code =
"window.setTimeout(function(){document.getElementById('" + lblFirst.ClientID + "').innerHTML='first filled'},1000);"+
"window.setTimeout(function(){document.getElementById('" + lblSecond.ClientId + "').innerHTML='Second filled'},7000);";
Page.ClientScript.RegisterStartupScript(this.GetType(), "messages", code, true);
}