我有一个带有 Ajax 的 ASP.NET 页面和一个数据网格(数据表)。数据网格的列中有搜索字段。
对于普通搜索字段,来自数据源的数据过滤如下:
myData = myData.Where(m => m.myFieldA.Contains(searchValueA)
|| m.myFieldB.Contains(searchValueB)
|| m.myFieldC.Contains(searchValueC));
我想动态构建过滤器。我通过循环获取字段名称和搜索词。现在我想动态设计过滤器并根据搜索输入字段中的条目生成它。
如果仅在 2 个字段中输入了某些内容,则过滤器应仅对 2 个条目进行过滤,并根据用户的规范与 and 或 链接。
你可以怎样做
m.myFieldA.Contains(searchValueA)
动态?是这样的吗:
m.fields("myFieldA").Contains(...
不幸的是,我还不太熟悉它。
数据表插件中的搜索不像您提到的那样工作。无论您在数据表插件的搜索框中添加了什么,如果在后端处理所有列,那么搜索将返回所有列中匹配搜索的结果。如果您限制两列,则搜索将仅在两列中完成。这取决于你的选择。您可以在后端业务逻辑层处理过滤或排序,也可以在数据库级别进行。我建议查看 ASP.NET MVC & Datatables JQuery Plugin Server Side Integration 文章以更好地理解。此示例使用 datables ajax。我希望它有帮助。