C# ASP.NET数据绑定在页面上还是在每个用户控件中?

C# ASP.NET数据绑定在页面上还是在每个用户控件中?,c#,asp.net,vb.net,C#,Asp.net,Vb.net,最好在页面上执行数据访问操作,然后用检索到的数据填充每个usercontrol的属性 --或-- 如果每个UC调用业务层并独立提取自己的数据,而不必依赖于页面,是否更好 现有条件: 1.该页面用于数据访问的任何信息(查询字符串、URL等)也可供各个UC用户使用 2.这两种解决方案都利用缓存 我的同事坚持认为第一种选择更好,因为数据访问在页面上只发生一次 第二个选项对我来说似乎更符合逻辑,因为它允许我将UC放置在另一个页面上,而无需在页面本身上进行任何额外的布线。页面和UC是真正解耦的 请说明为什

最好在页面上执行数据访问操作,然后用检索到的数据填充每个usercontrol的属性

--或--

如果每个UC调用业务层并独立提取自己的数据,而不必依赖于页面,是否更好

现有条件: 1.该页面用于数据访问的任何信息(查询字符串、URL等)也可供各个UC用户使用 2.这两种解决方案都利用缓存

我的同事坚持认为第一种选择更好,因为数据访问在页面上只发生一次

第二个选项对我来说似乎更符合逻辑,因为它允许我将UC放置在另一个页面上,而无需在页面本身上进行任何额外的布线。页面和UC是真正解耦的


请说明为什么一个比另一个好。

你们都是对的

如果您有任何重用用户控件的计划,那么您应该在该控件中封装数据访问

但是,如果一个页面上有多个用户控件,那么一次访问数据肯定会更有效


在这种情况下,我们通常会实现一个混合解决方案:要么用户控件托管在实现数据检索接口(从页面中提取)的页面上,要么用户控件实现一个指示其所需数据类型的接口(然后页面将数据推送到用户控件).

你们两个都是对的

如果您有任何重用用户控件的计划,那么您应该在该控件中封装数据访问

但是,如果一个页面上有多个用户控件,那么一次访问数据肯定会更有效


在这种情况下,我们通常会实现一个混合解决方案:要么用户控件托管在实现数据检索接口(从页面中提取)的页面上,要么用户控件实现一个指示其所需数据类型的接口(然后页面将数据推送到用户控件)在大多数情况下,第一种选择是更好的

UserControl不是控制器,而是页面。它应该显示数据,而不是访问数据。页面通常设置UserControl的属性

它的目的之一是可重用性。如果它与数据源硬链接,这将减少。它应该与任何类型的DAL一起工作,而不应该与它们一起工作


但是,如果它的唯一用途是封装(例如,作为TabContainer的TabPanel中使用的容器控件),那么UserControl就是页面替换,因此数据访问和事件处理也是如此。您不会经常重用这种用户控件。

在大多数情况下,第一个选项更好

UserControl不是控制器,而是页面。它应该显示数据,而不是访问数据。页面通常设置UserControl的属性

它的目的之一是可重用性。如果它与数据源硬链接,这将减少。它应该与任何类型的DAL一起工作,而不应该与它们一起工作


但是,如果它的唯一用途是封装(例如,作为TabContainer的TabPanel中使用的容器控件),那么UserControl就是页面替换,因此数据访问和事件处理也是如此。您不会经常重用这种用户控件。

2一个看起来不错的选项。你的数据有多大?2一个看起来不错。你的数据有多大?