ASP.NET 动态数据向页面添加附加过滤条件

发布于 2024-07-16 10:56:05 字数 615 浏览 5 评论 0原文

我应该如何向动态数据 Web 应用程序添加额外的搜索/过滤条件?

我使用 Northwind 数据库创建了一个动态数据 Web 应用程序,并且为员工表使用了自定义页面(基于 ListDetails.aspx 页面模板)。 我想向页面添加额外的搜索/过滤器/where 参数。 默认情况下,where 参数集合是基于 FilterRepeater 控件动态创建的,该控件也是基于 Employee 表具有的“外键”关系动态创建的。

为了尝试添加其他搜索条件,我已绑定到 GridView 的 LinqDataSource 的 Selecting 事件,并尝试将其他项目添加到 LinqDataSourceSelectEventArgs 的WhereParameters 集合中。

问题是我无法指定需要执行什么类型的比较。 WhereParameters 集合仅接受 String 和 Object,但不接受如何比较它们。 我真正想做的是添加到谓词委托集合中...

我应该如何向此页面添加其他搜索条件? 通过将属性应用于 LINQ To SQL 实体(如果是这样,如何实现)? 如果条件/条件不是基于实体本身怎么办,在这种情况下我将如何添加到搜索条件?

亚伦·霍夫曼

How should I be adding additional search/filter criteria to a Dynamic Data Web Application?

I created a Dynamic Data Web Application using the Northwind database and I am using a custom page for the Employees table (based on the ListDetails.aspx Page Template). I would like to add additional search/filter/where parameters to the Page. By default the where parameters collection is being dynamically created based on the FilterRepeater control, which is also being dynamically created based on the “foreign key” relationships the Employee Table has.

In an attempt to add additional search criteria, I have tied in to the Selecting event of the GridView's LinqDataSource and am trying to add additional items to the WhereParameters collection of the LinqDataSourceSelectEventArgs.

The problem is I can't specify what type of comparison needs to be performed. The WhereParameters collection only accepts a String and an Object, but not how to compare them. What I really would like to be able to do is add to a collection of predicate delegates...

How should I be adding additional search criteria to this page? Through attributes applied to the LINQ To SQL entity (if so, how)? What if the criteria/criterion is not based on the entity itself, how would I add to the search criteria in that case?

Aaron Hoffman

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

荒路情人 2024-07-23 10:56:05

如果您想将自己的条件添加到 DD 未自动提供给您的应用程序中,则必须转到 动态数据过滤 来做到这一点。 DynamicData 本身目前不支持自定义过滤器和搜索。 实施起来并不困难。 乔什·海耶斯(Josh Heyes)在这方面做得很好。

如果这不完全是您想要的,请回来

编辑:
另外,如果您只是打算对显示的数据进行一些进一步的过滤,您可以在 Page_Init 中编写类似这样的内容,而无需 Josh 的过滤项目:

GridDataSource.WhereParameters.Add(new Parameter("it.myColumn", TypeCode.Int32, myValue));

执行“in”或“contains”比这更复杂一些,并且需要动态数据过滤。

If you want to add your own criteria to the application that isn't automatically given to you by DD, you'll have to go to DynamicDataFiltering to do that. DynamicData itself doesn't currently support custom filters and searching. It isn't difficult to implement. Josh Heyes did a great job on it.

Come back if that's not quite what you are looking for

EDIT:
Also, if you are just intending on doing some further filtering of the displayed data you could write something like this maybe in the Page_Init without Josh's filtering project:

GridDataSource.WhereParameters.Add(new Parameter("it.myColumn", TypeCode.Int32, myValue));

Doing "in" or "contains" is a little more complicated than that, and would require DynamicDataFiltering.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文