Asp.net 是否可以在for循环中更新Asp:Update面板,类似于windows窗体中的DoEvents()
我一直在尝试获得一个更新面板,以便在代码通过后端C#代码中的for look运行时向屏幕添加控件 我尝试过很多不同的方法,但无论我做什么,我都无法做到这一点 使用ASP.NET可以做到这一点吗 这里有一个简单的例子来说明我的意思Asp.net 是否可以在for循环中更新Asp:Update面板,类似于windows窗体中的DoEvents(),asp.net,c#-4.0,updatepanel,Asp.net,C# 4.0,Updatepanel,我一直在尝试获得一个更新面板,以便在代码通过后端C#代码中的for look运行时向屏幕添加控件 我尝试过很多不同的方法,但无论我做什么,我都无法做到这一点 使用ASP.NET可以做到这一点吗 这里有一个简单的例子来说明我的意思 <form id="form1" runat="server"> <div> <asp:ScriptManager ID='mng' runat="server"></asp:ScriptManager>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID='mng' runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UPPnl" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Add5" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:PlaceHolder ID="Place" runat="server"></asp:PlaceHolder>
<asp:Button ID="Add5" runat="server" Text="Add 5" OnClick="Add5_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
以及背后的代码
protected void Add5_Click(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
Place.Controls.Add(new LiteralControl("Test" + i + "<br />"));
UPPnl.Update();
}
}
protectedvoid Add5\u单击(对象发送方,事件参数e)
{
对于(int i=0;i<5;i++)
{
Place.Controls.Add(新的LiteralControl(“Test”+i+“
”);
UPPnl.Update();
}
}
我希望每次通过更新方法进行调试时都能得到一行新的文本。但这似乎不起作用
有什么想法吗?尝试在页面加载中添加这一行:
ScriptManager1.RegisterAsyncPostBackControl(Add5);
你有什么错误吗?您是否检查了正在调用Add5_Click方法?我没有收到任何错误。所发生的是,它通过for循环运行,并且只有在完成之后,它才真正更新屏幕。我正在寻找一种方法来停止循环,并在屏幕上添加一个项目。然后继续循环。谢谢,很遗憾,这不起作用。我想用信号器。唯一的问题。我的实际项目要复杂得多。所以植入手术不会很有趣