是否有关于处理发布的“_search”和“filters”数据并使用它来查询数据库以获取结果的示例或文档?
谢谢...
该值_search
只是布尔值。如果_search
是,true
那么应该使用文档filters
中描述的格式的参数过滤数据。
可以使用prmNames
选项重命名_search
. 例如prmNames: { search: null, nd: null }
删除不需要的参数_search
,nd
另一个示例prmNames: { search: "isSearching" }
将默认_search
参数重命名为isSearching
.
发布参数的处理filters
取决于您使用的许多实现细节。您使用了基于免费开源 jqGrid 开发的商业产品的jqgrid-asp.net和jqgrid-php标签。在这个案子上我根本帮不了你,因为我不了解产品。此外,我发现您将 PHP 和 ASP.NET 作为标签包含在内,这很奇怪。在这两种情况下,实现可能完全不同。如果 ASP.NET 是您的主要平台,那么您使用的数据库访问是实现的最重要方面。三个典型选项:Entity Framework、LINQ to SQL 和需要完全不同的SQLCommand
SqlDataReader
实现动态过滤。
答案在使用实体框架的情况下提供了一个实现示例。使用实体框架的最大优点是可以使用带有字符串参数的ObjectQuery.Where 。以一种可以构造带有参数的字符串的方式,应该在SQL 语句的一部分中使用这些参数。您可以使用几乎相同的方法来构建带有参数的命令。filters
WHERE
SQLCommand
另一方面,LINQ to SQL 没有这种可能性,必须使用像这里这样的更复杂的方法或使用一些库(比如这个)。
我真正建议您考虑使用loadonce: true
. 如果您需要在网格中显示的数据集包含数百(甚至一千)行,那么将所有数据返回给 jqGrid(数据应该正确排序)并用于loadonce: true
实现本地过滤和数据分页。它可以简化您的服务器代码,并且从用户的角度来看,网格可能更加负责,因为 JavaScript 引擎现在足够快,并且 jqGrid 的本地过滤可以更快地向服务器发送请求和使用服务器端过滤。