C# 使用AJAX重新绑定gridview(无回发)

C# 使用AJAX重新绑定gridview(无回发),c#,asp.net,ajax,gridview,sqldatasource,C#,Asp.net,Ajax,Gridview,Sqldatasource,我计划允许用户打开一个ModalPopupXtender,其中包含一个带有过滤器文本框的gridview。我希望这样,当用户键入过滤器时,过滤器将应用于gridview,然后更新gridview的内容以反映所应用的过滤器-所有这些都不会发回。理想情况下,gridview将在用户键入时进行过滤,而不必按下按钮 我猜它会在我的SqlDataSource和UpdatePanel上使用FilterParameters,但是有谁能更透彻地解释一下我将如何做到这一点呢?如果我使用的代码是“通用”的,并且可以

我计划允许用户打开一个ModalPopupXtender,其中包含一个带有过滤器文本框的gridview。我希望这样,当用户键入过滤器时,过滤器将应用于gridview,然后更新gridview的内容以反映所应用的过滤器-所有这些都不会发回。理想情况下,gridview将在用户键入时进行过滤,而不必按下按钮

我猜它会在我的SqlDataSource和UpdatePanel上使用FilterParameters,但是有谁能更透彻地解释一下我将如何做到这一点呢?如果我使用的代码是“通用”的,并且可以与任何其他GridView和数据源一起使用,那也很好


谢谢

您不能将gridview包装在updatepanel中,然后在textbox上更改为使用筛选器重新绑定数据源吗?

您不能将gridview包装在updatepanel中,然后在textbox上更改为使用筛选器重新绑定数据源吗?

将gridview放入updatepanel中,并将文本框置于其外部。将一个隐藏按钮添加到作为异步触发器的面板中,然后将javascript onchange添加到文本框中以单击该按钮

  <asp:Button ID="DoRefresh" style="display:none;" UseSubmitBehavior="false"
 runat="server" OnClick="Recalculate()" />
将重新绑定代码放入重新计算()中

应该这样做。我相信有更好的方法可以做到这一点,但如果您想使用服务器端控件(如GridView),我认为您必须使用部分回发来更新它。不过要小心,您确定要在他们每次键入字母时运行查询吗


编辑-让我补充一点,我认为使用jQuery插件或其他客户端解决方案和ajax,正如另一个答案所建议的,比这样做更有意义。这并不是UpdatePanel的真正用途,每次他们键入一封信时,您都会进行回发(尽管是部分回发)。但是回发是告诉服务器端代码更新页面的唯一方法。

将gridview放入UpdatePanel,并将文本框置于其外部。将一个隐藏按钮添加到作为异步触发器的面板中,然后将javascript onchange添加到文本框中以单击该按钮

  <asp:Button ID="DoRefresh" style="display:none;" UseSubmitBehavior="false"
 runat="server" OnClick="Recalculate()" />
将重新绑定代码放入重新计算()中

应该这样做。我相信有更好的方法可以做到这一点,但如果您想使用服务器端控件(如GridView),我认为您必须使用部分回发来更新它。不过要小心,您确定要在他们每次键入字母时运行查询吗


编辑-让我补充一点,我认为使用jQuery插件或其他客户端解决方案和ajax,正如另一个答案所建议的,比这样做更有意义。这并不是UpdatePanel的真正用途,每次他们键入一封信时,您都会进行回发(尽管是部分回发)。但是回发是告诉服务器端代码更新页面的唯一方法。

每次用户键入信函时,您都会转到服务器并运行查询。那会很快变得昂贵。您使用的是像jQuery这样的javascript框架吗?大多数框架都有一个datatable,它围绕着一个具有这种功能的
标记

谷歌快速搜索jQuery可以找到以下内容: (还有很多其他的,dojo和yui也有自己的)

你可以这样做:

$(document).ready(function(){
  $('#<% = GridView1.ClientID%>').dataTable();
});
$(文档).ready(函数(){
$('#')。数据表();
});

请注意,根据数据集的大小,此解决方案也有其缺点。

每次用户键入字母时,您都会转到服务器并运行查询。那会很快变得昂贵。您使用的是像jQuery这样的javascript框架吗?大多数框架都有一个datatable,它围绕着一个具有这种功能的
标记

谷歌快速搜索jQuery可以找到以下内容: (还有很多其他的,dojo和yui也有自己的)

你可以这样做:

$(document).ready(function(){
  $('#<% = GridView1.ClientID%>').dataTable();
});
$(文档).ready(函数(){
$('#')。数据表();
});
注意,根据数据集的大小,此解决方案也有其缺点