佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 913|回复: 6

关于 .Net 2.0 DetailView Control

[复制链接]
发表于 11-10-2007 12:43 AM | 显示全部楼层 |阅读模式
目前工作上接手新计划, 开始一个.Net project , 在Design 阶段 。

读了蛮多的技术文章, 和参考了网上的资源。

初步决定要用 MVC pattern , 配上 Business Object , Data Object 来实现 UI - Business Logic - Data Logic 分离的可塑性强的结构。

已经准备用 ObjectDataSource 跟 Customized Web User Control 来实现, 可是发现有个 control 叫 DetailView。 搜寻了网络, 类似是我要的东西, 奈何精力与时间有限, 没能作测试, 希望有用过的朋友, 可以告知DataView的pro 和  con , 和限制,问题等等。

另外, 有谁有是用 MVC + Business Object 的方式来写ASP.Net DB 程序, 也希望分享下您的设计概念作为参考。

谢谢。
回复

使用道具 举报


ADVERTISEMENT

发表于 11-10-2007 11:10 PM | 显示全部楼层
什么是 MVC?
用 detail view 比较省时间
因为有 view, add, edit, delete 的 mode
回复

使用道具 举报

阿牙木 该用户已被删除
发表于 12-10-2007 09:30 AM | 显示全部楼层
MVC 就是Model, View, Controller
是一个很好的设计架构.

我来谈谈我的.NET FRAMEWORK 2.0 的MVC 设计.

我们有个WINDOWS APPLICATION, 就是用MVC来设计. DATA ACCESS的LAYER是通过REMOTING连接到一个APPLICATION SERVER 上. 所以可以做到让MODEL控制逻辑,CONTROLLER运用逻辑,然后VIEW来显示DATA的目的.

在这里,我并不鼓励你在ASP.NET上实现MVC, 因为WEB-BASED的 APPLICATION本来就不适合MVC, 除非你是在.NET FRAMEWORK 3.0 (就是WPF-Windows Presentation Foundation)的基础上运行,使用XBAP 就能够达到WEB-BASED的MVC设计.

说回DETAILSVIEW, 你应该把所有ASP.NET的DATA CONTROL当成是一个VIEW, 从DETAILS VIEW来看,你可以把它想成是GRIDVIEW的详细版. 同样一个OBJECT DATA SOURCE,你若BIND到GRIDVIEW的话就是DISPLAY一整面, DETAILS VIEW的话就只DISPLAY一个RECORD一面.

你可以ENABLE PAGING, EDIT, DELETE和ADD NEW <--- ADD NEW 在GRIDVIEW里并不直接支援,这是DETAILSVIEW里的PRO.

CON就是, 如果你的用户直接使用DETAILSVIEW来游览,并没有附加SEARCH的功能,所以你必须自己在CODE里进行FILTER (其实GRIDVIEW也有这层问题). 而且, 即使用户只打算看第一个RECORD, 原则上来说DETAILSVIEW是把所有的RECORD都从OBJECT DATA SOURCE那里直接拿下来,所以你的VIEWSTATE就会变很大,影响你的用户的RESPONSE TIME.

要解决这个问题,可以上网参考ASP.NET Paged Retrieval of records.
回复

使用道具 举报

发表于 12-10-2007 11:44 AM | 显示全部楼层
ror就强制你用mvc的architecture.

http://www.youtube.com/watch?v=p5EIrSM8dCA
http://www.youtube.com/watch?v=n1NVfDlU6yQ
http://www.youtube.com/watch?v=Ld919lziKgE

[ 本帖最后由 tensaix2j 于 12-10-2007 06:48 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 19-10-2007 01:07 PM | 显示全部楼层
原帖由 阿牙木 于 12-10-2007 09:30 AM 发表
MVC 就是Model, View, Controller
是一个很好的设计架构.

我来谈谈我的.NET FRAMEWORK 2.0 的MVC 设计.

我们有个WINDOWS APPLICATION, 就是用MVC来设计. DATA ACCESS的LAYER是通过REMOTING连接到一个APP ...


多谢你详细的讲解。

因为我们原本的开发工具在这方面作到很容易开发的MVC model, 但不是Web based。

Web base 的 MVC 我也不要求多, 只要求ObjectDataSource 跟 Gridview, DetailView + Toolbar 可以以 MVC x协作己行了。

我想请问下, .Net 2.0 上, 能否把  Gridview 跟 Detail View 放在同一个页面 然后共用 ObjectDataSource, 如果只要少许coding 也不是大问题。
回复

使用道具 举报

阿牙木 该用户已被删除
发表于 19-10-2007 02:11 PM | 显示全部楼层
如果要DISPLAY的东西是一样的话,一个OBJECT DATA SOURCE是可以同时BIND到多个CONTROL的,可是问题是PARAMETER, 也就是说如果你SPECIFY某一个PARAMETER在你的DATA SOURCE里, 所有的BOUND CONTROL都会被影响.

通常GRIDVIEW是DISPLAY ALL, 而DETAILSVIEW是DISPLAY一个的,所以PARAMETER不会相同,在这种情况下,我建议的是用两个不同的OBJECT DATA SOURCE, 然后POINT TO THE SAME BUSINESS OBJECT, 然后你的BUSINESS OBJECT有自己的SQL CACHE.
回复

使用道具 举报

Follow Us
 楼主| 发表于 20-10-2007 11:26 PM | 显示全部楼层
原帖由 阿牙木 于 19-10-2007 02:11 PM 发表
如果要DISPLAY的东西是一样的话,一个OBJECT DATASOURCE是可以同时BIND到多个CONTROL的,可是问题是PARAMETER,也就是说如果你SPECIFY某一个PARAMETER在你的DATA SOURCE里, 所有的BOUND CONTROL都会被影响.

通常GRIDVIEW是DISPLAY ALL,而DETAILSVIEW是DISPLAY一个的,所以PARAMETER不会相同,在这种情况下,我建议的是用两个不同的OBJECT DATASOURCE, 然后POINT TO THE SAME BUSINESS OBJECT, 然后你的BUSINESS OBJECT有自己的SQLCACHE.



谢谢你的建议。

我们想做到的是 GridView 在上, 功能为显示全部(或部分)的 record , 而 DetailView 显示active record 。
GridView 只负责显示, paging , sorting ,跟active record selection 功能, 而 DetailView 则有让 user 更新资料的功能。


由于 DetailView 的record 必定是在 GridView 的DataSet里 , 如果两个DataSource 就会有点浪费资源。 我在网上有找到某个方式, 但不是用 GridView + DetailView , 而是用 DataView + Web User Control , 当时应该是用 .Net 1.1, 所以想知道 2.0 有没有内建这种功能。

看来还是要再多研究下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 18-9-2025 11:53 PM , Processed in 0.150862 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表