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