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

来源:互联网 发布:java开发大学项目 编辑:程序博客网 时间:2024/06/04 20:12

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

错误描述:

        不能在DropDownList中选择多个项。

错误原因:

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

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

this.ddlWorkStype.Items.Insert(0, new ListItem("请选择", "0"));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控件也是封装好的,用代码写出来的,它提供什么样的服务,细节还是得考虑一下的,这个需要慢慢积累,大家有没有相关资料什么的分享呢。

0 0
原创粉丝点击