2

我正在使用带有 AJAX 扩展(1.0?)的 ASP.NET 2.0,我想知道是否可以异步调用方法并在页面加载后将结果填充到页面上。

我有一个由相当长时间运行的 SQL 查询填充的 gridview。我宁愿让页面出现并且结果在它们从服务器返回时慢慢返回,而不是强迫用户盯着空白页面直到所有内容都处理完毕。

4

2 回答 2

1

您可以使用 asp:UpdatePanel 并在其中插入 gridview。他们只是在加载期间调用 AJAX 调用。您使用 Sys.Application.load 事件。在这里查看更多信息:http ://www.asp.net/ajax/documentation/live/overview/AJAXClientEvents.aspx

于 2008-10-02T13:22:50.047 回答
0

您可以在更新面板中放置一个隐藏按钮,然后对该按钮执行 PostBack。不是一个优雅的解决方案,但它工作正常。

在您的更新面板中,您将编写类似这样的内容。

<div style="visibility:hidden">
  <asp:Button ID="btnLoad" OnClick="btnLoad_Click" runat="server"/>
</div>

在您的 Page_Load 事件中,您必须为 PostBack 注册脚本:

protected void Page_Load(object sender, EventArgs e)
{    
    if (!Page.IsPostBack)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "InitialLoad" + this.ClientID, Page.ClientScript.GetPostBackEventReference(btnLoad, "")+";", true);
    }
}

然后您可以在 btnLoad_Click 方法(按钮的 OnClick 事件)中编写将在启动时执行的代码。

我尝试了另一种方法,使用 AJAX 计时器并在第一个 Tick 时禁用它,但有时我在执行后面的代码之前收到多个滴答声,因此我放弃了该解决方案。

于 2009-05-14T22:05:18.107 回答