更改标签文本
问题描述:
我有Label
而Button
在一个UpdatePanel
,现在我叫龙工艺与ForEach
环On Button Click
我想是更新文本Label
完成Loop.Is有任何简单的方法后更改Label
的文本在运行时,我听到了一些我们可以用Iframe
来做到这一点但我对此没有任何想法。更改标签文本
CODE
ASPX
<asp:UpdatePanel ID="UpdatePanelUpdate" runat="server" UpdateMode="Conditional"> <ContentTemplate>
<div>
<asp:Button ID="ButtonUpdate" runat="server" Text="Update"
onclick="ButtonUpdate_Click" />
<br />
<br />
<asp:Label ID="LabelUpdateCount" runat="server" Text=""></asp:Label>
< /div>
</ContentTemplate>
</asp:UpdatePanel>
aspx.cs
protected void ButtonUpdate_Click(object sender, EventArgs e)
{
int count = 0;
foreach()
{
do my stuff();
count = count + 1;
LabelUpdateCount.Text = count.ToString();
}
}
所以,我想在运行时显示标签的变化.....
答
如果我能完成该方法后,才正确,服务器返回,但你希望在它正在做的客户端标签来显示当前已完成的项目数。
我想提一个问题。每回发布大约需要200-400ms,因此不会更新。我强烈建议考虑每隔一段时间更新一次,而不是试图完成每项工作的更新。
要做到这一点,你必须在不同的线程上运行你的函数循环(让它修改一个变量)。添加客户端使用js timer检查其状态(返回变量的值)。
换句话说,你要做的是向客户展示进展。在这种情况下,以下链接可能会有用。
Real-Time Progress Bar With ASP.NET AJAX
注:返回百分比。你可以改变它,让它返回计数。
上面的链接取自下面的问题。这在很多方面都是相关的问题。
答
MyLabel.Text = "The process has completed.";
只要确保此标签也包含在更新面板中,并且它应该在服务器端完成并返回到客户端时更新。
答
这应该相当简单。
例子:
protected void button1_Click(object sender, EventArgs e)
{
foreach (var a in loopItems)
{
DoMyWork(a);
}
label1.Text = "Complete";
}
请显示一些源代码...你试过了什么?什么不工作? – Yahia 2012-03-14 19:35:16