Asp.net-不能在DropDownList中选择多个项

简介: Asp.net-不能在DropDownList中选择多个项

一个错误开启了新的视角。

错误描述:

       不能在DropDownList中选择多个项。


错误原因:

       我在一个页面加载中想实现,如果此页面要执行添加功能,就把dropdownlist绑定的数据中添加一项“请选择”,并设为默认项。如果此页面要执行修改功能,就把相应查出来的字段值设为默认项。

       我的错误思路是:加载的时候设一个默认值,如下:

1. this.ddlWorkStype.Items.Insert(0, new ListItem("请选择", "0"));
2. this.ddlWorkStype.SelectedIndex = 0;

       查出来数据,再重新设一下默认值:

this.ddlWorkStype.Items.FindByText(worksList[0].workstype).Selected = true;  //设置默认类别

       从逻辑上来看,这个是没问题的。But,报开头的错误,我以为数据出问题了,有重复的数据,因此把数据库中的重复数据都进行了修改,依旧报错。百思不得其解。请来亮亮调错。才知道原因所在。

       因为我设了两次默认值,而ddl控件的机制是,它不会自动取消上一个设置的默认值,但是它又不允许出现两个默认值,于是就报错了。

两种方法解决问题:

       1、只设置一次默认值,规避错误,不要去触碰这个机制。

       2、想多次设置默认值,又不想它报错,既然不能自动取消,那就手动取消好了。

this.ddlWorkStype.Items[0].Selected = false;

总结:

       完事儿又试了一下我当初的想法,数据原因,把数据库中整出重复数据,发现——它是不会报错的,默认把第一次出现的数据设为了默认值。想法对不对,试过才知道。

       一次错误,开启了一个新的视角。要了解一下控件的运行机制。asp.net控件也是封装好的,用代码写出来的,它提供什么样的服务,细节还是得考虑一下的,这个需要慢慢积累,大家有没有相关资料什么的分享呢。

相关文章
|
.NET 开发框架
asp.net dropdownlist 取不到值
我觉得奇怪,后来发现我在页面里面禁用ViewState了(EnableViewState="false"),改成true就行了。
737 0