作者seagal (待救的小米)
看板C_Sharp
标题Re: [请益] 这个问题该怎麽implement呢?
时间Thu Mar 31 00:17:20 2005
这类问题
最基本且robust的解法
就是使用MVC patern来解
我先举一个MVC在.NET上面实作的例子
如果大家觉得还可以修改的 请再帮我修改
基本上我的V只控制C
C控制M, M控制V
假设我目前只有两种问题
1st: 是非题(在统计里面称做categorical data)
2nd: 身高,体重 (continuous data)
(在这边我只是随便举例 你可能有更多类型 例如单选 复选)
首先呢 我需要一个data类别
来表示每个人的问卷资料
我先弄出两个父类别 catData, conData
之後从这两个类别衍生出所有问题的类别
在MVC pattern里面 完全由这些类别的instance传递资料
因此在V里面 自己去实做出Data的呈现方式(不管你要用datagrid或其他方式来放)
M里面自己实作出Data存到资料库的方法
所以V根本不知道M是怎麽存的 是放到SQL or Access
切的很乾净吧
这种做法就能让你发挥.NET based on OO上面的威力
你就不需要再摇头了:)
最後要讨论的就是实作的方式
你所说的动态新增控制项 也可以这样做
要注意这是在V里面做的事情
等到使用者填完之後
这些资料就要丢到C里面处理
由C抓出Data物件之後 再丢给M去存到资料库
顺便一提
我感觉.NET 1.1 code behind方式
微软就是要把*.aspx当成V
*.aspx.vb当成C
大家会有这种感觉嘛?
个人觉得.NET 1.1来开发 先将就这样用没关系
但.NET 2.0已经改成 code biside方式
我想 对於V & C的切割 应该能够更好才是
※ 引述《sunflier (叮当)》之铭言:
: ※ 引述《liunate (测试)》之铭言:
: : 我想到的是...你要不要用datagrid(or datalist)根据所取得的资料列"问题类型"
: : 的值来决定要动态新增哪些控制项?
: ㄜ~ 又回到问题原本了... 原本我就是想这样子弄的 *_*
: 不过,等一下再来try看看好了,因为自己用.net都像在写
: asp一样的土法链钢呀! 写出来的程式自己都摇头...
: ---------------------------------------
: 後来想想,若是用panel,再搭配panel.controls.add
: 再用for回圈一个问题一个问题的放上去
: 并且每个control都在add之前先指定一个ID,以便在user
: post资料回来的时候能够抓得到
: 请问这样子可行吗?
--
生物资讯研究室:每天都会更新文件,提供生物资讯教学,生物字典。
http://www.bioinformatic.idv.tw
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.73.177