写博客是为了记录自己实际开发ASP.NET过程中的点点滴滴,记录自己的一些不成熟的想法。如果各位有更好的办法,务必请给出指正,在下先谢过大家了!
最近在开发中遇到了个问题。首先需要实现一个二级联动的dropdownlist:dropdownlist1控制dopdownlist2的生成(根据value值),而dropdownlist1又是通过后台动态生成的(value值与dropdownlist2相同)。于是乎在开发中把dropdownlist1设置自动回发,接着问题便出现了,若项的值相同则会自动选择同值的第一项。 比如a(value=1),b(value=2),c(value=1),当选择c时会自动跳回a。
在查阅了网上资料和论坛提问后,知道了原来dropdownlist的selectindexchange事件在发送数据时是根据value值发送的,并不是像字面所写的根据index来发送(这个问题多年前在网上也有过激烈讨论,有人认为是微软的bug,也有的人反驳是用户设计有缺陷),但我觉得既然这么多年微软没有修改这个问题,那就说明微软认为如果发生了这种冲突必定是用户自身设计有问题。
于是我重新考量了自己的程序,结合一位网友的建议,在数据库中多加了一列存储“name#type”这样格式的数据,然后dropdownlist1中value使用“name#type”,dropdownlist2中value使用Split('#')方法得到s[1],即type列里的数据。