2010-02-10 78 views
2

我在開發業務邏輯和數據庫邏輯方面有一些經驗,主要使用C#。現在我想在ASP.NET中構建我的第一個數據驅動的表示層。我只是想知道如何用數據填充我的DataGrid。網格綁定的最佳實踐

我的IList - 商業實體的集合,例如「客戶」這是我從我的BLL檢索。將整個集合綁定到控件很容易,但這意味着我的業務實體的所有公共屬性都顯示爲列。我無法決定要顯示哪些屬性,應該如何排列它們以及如何顯示它們(例如DateTime作爲ShortTimeString)。

能否請你告訴我在哪裏可以找到最好的實踐範例或告訴我你是如何解決這個問題?

最好的問候, 丹尼爾·蘭

回答

2

每當我綁定到網格時,我一定要始終具有屬性AutoGenerateColumns = false。然後我明確地定義了我使用的列和模板。

我覺得這是最好的做法,因爲在接下來的編碼器可能出現一起,並添加東西到你的對象,並沒有意識到它會自動添加到你到處它綁定到網格。它也讓你考慮每個領域,看看他們是否真的需要看到它或與某種類型的模板。

的AutoGenerateColumns屬性是的,看起來非常酷的演示,但在現實世界的特徵之一是沒有多大用處,並可能導致意外的問題。

+0

感謝您的建議 - 這看起來像是「真正的」最佳實踐! – 2010-02-10 19:57:15

0

我用的是「髒」之類的把戲格式化我在GridView的和類似的結合。一旦你添加了你的控件,你可以(在設計者中)選擇它的數據源。我通常選擇ObjectDataSource,並在下一個嚮導屏幕上取消選中僅顯示數據對象的框。然後我在我的BLL中找到我想要綁定到的函數(或返回相同類/數據源的方法)並選擇它。我通過嚮導開火,就好像我真正綁定了該方法,並且完成後,控件將被格式化爲對該源進行雙向綁定。

在那之後,我刪除的ObjectDataSource對象的形式設置控件的數據源爲「無」。當它提示重新配置控件時,我只需單擊否。該控件現在被格式化並解除綁定。從這裏(對於GridViews),您可以進入編輯列並將其與設計器重新定位,格式化,應用樣式,調整綁定等。

然而,作爲一種最佳實踐,我綁定到函數返回而不是真2綁定。我們有特定的BLL/DAL對象來處理這些操作,因此我使用一種方法來檢索數據,然後我們使用一種方法將數據放入。

0

正如由@Kelsey說你應該設置AutoGenerateColumns = false和手動定義列。但是,似乎您知道只應顯示某些信息,但您不知道要顯示哪些部分以及以何種格式顯示。

我不能決定哪些屬性 表演,他們應該如何進行排序和 他們應如何顯示(例如 日期時間爲ShortTimeString)。

你能告訴我在哪裏可以找到 最佳實踐的例子或者告訴我你如何解決這個問題 ?

這真的取決於對應用程序用戶最有用的東西。問自己一些問題。更好的方法是將這些問題提交給除你自己以外的人使用。

的幾點思考:

  • 什麼將一個用戶有興趣看到?
  • 不要只顯示數據來顯示它
  • 應該服務於某種目的,給用戶
  • DateTime格式 - 沒有用戶需要看到比ShortTimeString嗎?知道這一天會幫助他們嗎?也許在工具提示中顯示長字符串並顯示縮短的空間以節省空間。
+0

謝謝你的幫助! 正如你可能已經認識到我的英語不太好 - 我的意思是我不知道如何實現某些屬性沒有顯示。 順便說一句,你的提示是有幫助的,我會考慮他們在我的工作! – 2010-02-10 19:59:31