可以在for循环中更新Asp:Update Panel,类似于Windows窗体中的DoEvents()

时间:2013-08-14 13:11:21

标签: asp.net c#-4.0 updatepanel

我一直试图让一个更新面板在屏幕上添加控件,因为代码会在后端C#代码中运行。

我尝试了很多不同的方法,但无论我做什么,我都无法做到这一点 这可以使用ASP.NET吗?

这是一个我的意思的简单例子。

    <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();                
        }
    }

我希望每次通过Update方法调试时都会得到一个新的文本行。但这似乎不想工作

任何想法?

1 个答案:

答案 0 :(得分:0)

尝试在Page_Load中添加此行:

ScriptManager1.RegisterAsyncPostBackControl(Add5);