繁体   English   中英

使用asp.net C#和jquery过滤数据集合

[英]Using asp.net C# and jquery to filter a collection of data

我正在开发一个网页,用户可以在其中过滤数据,然后将选择内容导出为pdf或excel。 该网站正在使用ASP .NET C#。

为了筛选数据,我创建了一个网页,该网页包含一个带有框和下拉菜单的左列,使用户能够输入搜索条件,然后单击搜索按钮。 这是许多网站包含的典型搜索/过滤器功能。 过滤数据后,将使用asp列表视图显示选择。 此列表视图生成一个表。 我已经实现了Dragtable ,使用户可以更改此表中列的顺序,还可以实现columnManager,使用户可以选择要显示的列。

所以我的问题是,使用asp .net C#在后台解析了过滤器/搜索功能,而使用jQuery在客户端进行了列的选择和重新排列。 现在,当用户单击“导出”按钮时,除了由jQuery完成的筛选器之外,我还希望收集由asp控件完成的筛选器,并创建文件。 该文件应仅包含使用columnManager选择的列,并以使用dragtable进行更改后的顺序相同。

同时使用服务器端过滤器和客户端过滤器的最佳实践是什么? 我还考虑过删除所有服务器端过滤,而仅使用ajax.post()将所有JSON格式的过滤器发送到服务器。 我还希望使用户能够再次保存其当前过滤器。

更新资料

我决定删除服务器端,并使用ajax(更精确地说是getJSON)来获取搜索结果。 这样,我就不会松散使用jQuery / js完成的列的排序和排序,而我会回发一次(当然可以使用Cookies的东西)。 我还将所有逻辑都放在一个地方,并且JSON对象可以很容易地在服务器端进行包装/展开。 不过,谢谢您的回答!

客户端和服务器端在同一位置工作并不坏。 世界上所有运行良好的应用程序都将这些组合在一起。

但是,我们需要了解这种方法。

如果您不希望有任何回发,我建议您使用Jquery。

如果您可以往返,请继续使用Server Side和Ajax。

您的方法还有另一个问题:如果用户先订购列而不是对其进行过滤,会发生什么? 列的顺序被重置。

但是,通过可拖动的jQuery ui,您可以触发ajax调用,以将有关更改通知服务器端代码。 您可以将函数绑定到停止事件: http : //api.jqueryui.com/draggable/#event-stop

因此,我将执行以下操作:

  • 当用户更改列的顺序但不刷新数据时触发ajax调用
  • 用户添加过滤器并刷新数据时触发ajax调用

服务器端代码始终是最新的,并根据需要呈现正确的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM