2009-04-09 28 views
8

我应该如何将其他搜索/筛选条件添加到动态数据Web应用程序?ASP.NET动态数据将附加筛选条件添加到页面

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

在试图添加额外的搜索条件时,我已经绑定了GridView的LinqDataSource的Selecting事件,并试图将其他项添加到LinqDataSourceSelectEventArgs的WhereParameters集合中。

问题是我无法指定需要执行哪种类型的比较。 WhereParameters集合只接受一个String和一个Object,但不接受如何比较它们。我真的希望能够做的是添加到一个谓词代表集合...

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

亚伦·霍夫曼

+0

除了下面的回答,DD论坛,虽然加载缓慢,以下是有关信息DD的最佳来源有现在,不幸的是 – jlembke 2009-04-09 16:59:45

回答

7

如果你想自己的标准添加到未自动DD给你的应用程序,你必须去DynamicDataFiltering做到这一点。 DynamicData本身目前不支持自定义过滤器和搜索。这并不难实现。 Josh Heyes在这方面做得很好。

回来,如果这不是你看上去很什么

编辑:另外 ,如果你只是做显示的数据的另外一些过滤打算你可以写这样的事情也许在没有Josh的在Page_Init过滤项目:

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

做“在”或“包含”比这更复杂一点,并且需要DynamicDataFiltering。

+0

我试着按照Josh的指示将LinqDataSource转换为DynamicLinqDataSource,但我从来没有得到一个动作,因为他说“调用UpgradeData源出现在动作弹出窗口中”您是否发现这种情况? – 2009-11-10 21:00:38