0

我有一个 ASP.Net 页面,它的功能很长,很耗时。我希望它在计算时显示“加载”字样,并在完成后显示结果。这是代码:

<asp:UpdatePanel UpdateMode="Always" runat="server" ID="upanel1">
        <ContentTemplate>
            <asp:Button ID="btnGetInfo"  runat="server" Text="Lekérés" OnClick="btnGetInfo_Click" />
        </ContentTemplate>
        <Triggers>
           <asp:AsyncPostBackTrigger ControlID="btnGetInfo" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>
</div>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="upanel1">
    <ProgressTemplate>
        <div>
            LOADING</div>
    </ProgressTemplate>
</asp:UpdateProgress> 

它几乎可以工作(我可以看到“LOADING”并且在 btnGetInfo_Click 函数结束后,“LOADING”disapperrs)。完成后我只需要一个 PostBack。

我发现了一些类似的问题,但解决方案对我没有帮助。

谢谢你的回答!

4

1 回答 1

2

单击 btnGetInfo 时发生的是部分页面回发,它会刷新 UpdatePanel ContentTemplate 中的内容。调用 DataBind() 时 GridView 未更新的原因是它不在 UpdatePanel ContentTemplate 中。

触发整页回发违背了 UpdatePanel 的目的。我建议您将 GridView 放在 ContentTemplate 中以解决问题。

于 2012-10-24T13:37:18.350 回答