本文发表在 rolia.net 枫下论坛前几天发的帖子由于过长,我重新发帖让大家看得容易些。首先感谢所有回复的朋友,你们的意见都直接或者间接帮助了我,谢谢!!!
经过分析目前公司里的项目后发现,虽说dropdownlist不少,但相关的一组一般也不超过10个,相关的DropdownLists都是连接同一个DataSource的,所以Connection也不太多,所以没有使用一个DataSet里多个DataTable的方法,逻辑上也没太大必要做成每个DropDownlist都互相独立,参照别人的模式,我也改成顺序选择的模式了(初始化就让第一个DropdownList是enabled的,其他的都bind后设置成Enable=False,用户选择了第一个dropdownlist按顺序第二个启动,然后第三个。。。),这样逻辑上简单太多了,而且更有效。另外,我们数据库访问层用的是LINQ,我对LINQ认识还比较有限,感觉这个Wrapper很强大,有点像我以前项目里做过的,把每个数据库table对应生成一个个class,一个总的abstract class来做root,看了LINQ的datacontext自动生成的code,还真是一个table一个class的搞法!
但现在我在想,如果不用DropDownList的话,用ListView那样的把table里的row都列出来,用户可以通过CheckedBox来filter这些结果,然后选择任何一条记录,我找了半天发现ListView这个新的Asp.net的control竟然功能这么有限。。。。根本实现不了我要的功能,真搞不懂MS吃啥的,GridView来实现也存在一个HyperLinkField不能正常执行Javascript的问题,要用template里放HyperLink control来实现。。。。也许这些问题对于高手来说太小儿科了,嫌太简单就随便指导一下,谢谢。更多精彩文章及讨论,请光临枫下论坛 rolia.net
经过分析目前公司里的项目后发现,虽说dropdownlist不少,但相关的一组一般也不超过10个,相关的DropdownLists都是连接同一个DataSource的,所以Connection也不太多,所以没有使用一个DataSet里多个DataTable的方法,逻辑上也没太大必要做成每个DropDownlist都互相独立,参照别人的模式,我也改成顺序选择的模式了(初始化就让第一个DropdownList是enabled的,其他的都bind后设置成Enable=False,用户选择了第一个dropdownlist按顺序第二个启动,然后第三个。。。),这样逻辑上简单太多了,而且更有效。另外,我们数据库访问层用的是LINQ,我对LINQ认识还比较有限,感觉这个Wrapper很强大,有点像我以前项目里做过的,把每个数据库table对应生成一个个class,一个总的abstract class来做root,看了LINQ的datacontext自动生成的code,还真是一个table一个class的搞法!
但现在我在想,如果不用DropDownList的话,用ListView那样的把table里的row都列出来,用户可以通过CheckedBox来filter这些结果,然后选择任何一条记录,我找了半天发现ListView这个新的Asp.net的control竟然功能这么有限。。。。根本实现不了我要的功能,真搞不懂MS吃啥的,GridView来实现也存在一个HyperLinkField不能正常执行Javascript的问题,要用template里放HyperLink control来实现。。。。也许这些问题对于高手来说太小儿科了,嫌太简单就随便指导一下,谢谢。更多精彩文章及讨论,请光临枫下论坛 rolia.net