如何通过单击一个按钮对gridview进行多个回发/ajax更新?

如何通过单击一个按钮对gridview进行多个回发/ajax更新?,gridview,webforms,ajaxcontroltoolkit,Gridview,Webforms,Ajaxcontroltoolkit,我正在开发一个搜索功能,受到后端的限制。我正在尝试通过多个小搜索而不是一个大搜索来加快搜索速度。我目前所做的是在OnClick事件中,首先进行搜索并将结果返回到gridview。如果需要进行更多搜索,我将使用AjaxControlToolkit.ToolkitScriptManager.RegisterStartupScript注册一个小函数,再次单击submit按钮 这是可行的,但似乎是一个黑客,我觉得应该有一个更好的方法。我遗漏了什么吗?我想到的第一个选项是增加了一层复杂性,但如果使用aja

我正在开发一个搜索功能,受到后端的限制。我正在尝试通过多个小搜索而不是一个大搜索来加快搜索速度。我目前所做的是在OnClick事件中,首先进行搜索并将结果返回到gridview。如果需要进行更多搜索,我将使用AjaxControlToolkit.ToolkitScriptManager.RegisterStartupScript注册一个小函数,再次单击submit按钮


这是可行的,但似乎是一个黑客,我觉得应该有一个更好的方法。我遗漏了什么吗?

我想到的第一个选项是增加了一层复杂性,但如果使用ajax,根据需要多次提取结果集,使用小型服务提供数据,可能会获得最佳的用户体验。我在该示例中提供了一点jquery来显示调用

searchRequest = $.ajax({
            url: '/GetSearchData.svc',
            data: { searchText: 1 },
            traditional: true,
            success: function(data) {

                // Do something with returned data or kick off another async request
        });

这将允许您提取任意大小或块的原始数据。或者将它们附加到另一个事件,例如滚动以随时间添加项目。

我最后使用了如下计时器:

    <asp:Timer runat="server" ID="timer1" Interval="1000"
   ontick="timer1_Tick" Enabled="false" />
在计时器1_Tick处理程序中:

if(Session["SearchResults"] != null)
{
    DataView dv = (DataView)Session["SearchResults"];
    dv.Sort = (string)Session["SortExpression"] + (string)Session["SortDirection"];
    gvResults.DataSource = dv;
    gvResults.DataBind();
}

你是在寻找一种不同的点击按钮的方式还是一种更有效的搜索方式?比如说启动一个后台函数,该函数执行多个异步查询以将数据分块提取?或者诸如此类ilk@BryanRoberts第二,启动一个执行多个异步查询的后台函数“正确”的方法是使用分页来加快搜索速度:返回前20个结果,然后点击“下一页”,如果你想要20个以上的搜索结果…@FrancisP如果我能完全控制后端,我会的。但是,由于我必须在后端执行查询,如果不执行完整查询,就不可能确定分页部分中要显示多少页面,这是我试图避免的。嗯,我对jQuery不是很熟悉。
if(Session["SearchResults"] != null)
{
    DataView dv = (DataView)Session["SearchResults"];
    dv.Sort = (string)Session["SortExpression"] + (string)Session["SortDirection"];
    gvResults.DataSource = dv;
    gvResults.DataBind();
}