2010-02-10 76 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