2009-04-09 69 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