我有一个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。
我发现了一些类似的问题,但解决方案并没有帮助我。
感谢您的回答!
答案 0 :(得分:1)
单击btnGetInfo时发生的是部分页面回发,它会刷新UpdatePanel ContentTemplate中的内容。调用DataBind()时GridView未更新的原因是因为它不在UpdatePanel ContentTemplate中。
触发整页回发会破坏UpdatePanel的目的。我建议您将GridView放在ContentTemplate中以解决问题。