0

是否有关于处理发布的“_search”和“filters”数据并使用它来查询数据库以获取结果的示例或文档?

谢谢...

4

1 回答 1

0

该值_search只是布尔值。如果_search是,true那么应该使用文档filters中描述的格式的参数过滤数据。

可以使用prmNames 选项重命名_search. 例如prmNames: { search: null, nd: null }删除不需要的参数_searchnd另一个示例prmNames: { search: "isSearching" }将默认_search参数重命名为isSearching.

发布参数的处理filters取决于您使用的许多实现细节。您使用了基于免费开源 jqGrid 开发的商业产品的jqgrid-asp.netjqgrid-php标签。在这个案子上我根本帮不了你,因为我不了解产品。此外,我发现您将 PHP 和 ASP.NET 作为标签包含在内,这很奇怪。在这两种情况下,实现可能完全不同。如果 ASP.NET 是您的主要平台,那么您使用的数据库访问是实现的最重要方面。三个典型选项:Entity Framework、LINQ to SQL 和需要完全不同的SQLCommandSqlDataReader实现动态过滤。

答案在使用实体框架的情况下提供了一个实现示例。使用实体框架的最大优点是可以使用带有字符串参数的ObjectQuery.Where 。以一种可以构造带有参数的字符串的方式,应该在SQL 语句的一部分中使用这些参数。您可以使用几乎相同的方法来构建带有参数的命令。filtersWHERESQLCommand

另一方面,LINQ to SQL 没有这种可能性,必须使用像这里这样的更复杂的方法或使用一些库(比如这个)。

我真正建议您考虑使用loadonce: true. 如果您需要在网格中显示的数据集包含数百(甚至一千)行,那么将所有数据返回给 jqGrid(数据应该正确排序)并用于loadonce: true实现本地过滤和数据分页。它可以简化您的服务器代码,并且从用户的角度来看,网格可能更加负责,因为 JavaScript 引擎现在足够快,并且 jqGrid 的本地过滤可以更快地向服务器发送请求和使用服务器端过滤。

于 2013-06-15T11:15:02.377 回答