.net中不能在DropDownList中选中多个项的解决方法

页面中放有多个DropDownList,点击修改时候,需要根据值来设置两个DropDownList的选中项,当值为空时则需要选中默认值。

页面报错:不能在DropDownList中选中多个项

直接粘解决方法:

  

 1 private void bind(string s1,string s2)
 2 {
 3     List<test> lists=new List<test>();
 4             for(int i=0;i<10;i++)
 5             {
 6                 test t=new test();
 7                 t.ctime=DateTime.Now.AddMinutes(Convert.ToDouble(i));
 8                 t.name="name"+i.ToString();
 9                 t.no="22"+i.ToString();
10                 lists.Add(t);
11             }
12             d1.DataSource=getDataTable(lists);
13             d1.DataTextField="name";
14             d1.DataValueField="no";
15             d1.DataBind();
16 
17             d2.DataSource = getDataTable(lists);
18             d2.DataTextField="name";
19             d2.DataValueField="no";
20             d2.DataBind();            
21             
22             if(!string.IsNullOrEmpty(s1))
23             {                
24                 d1.SelectedValue=s1;
25             }else
26             {             
27                 d1.SelectedValue="-1";
28             }
29 
30             if(!string.IsNullOrEmpty(s2))
31             {             
32                 d2.SelectedValue=s2;
33             }else
34             {             
35                 d2.SelectedValue="-1";
36             }
37 }

然后需要一个将list转换成DataTable的方法:

    public DataTable getDataTable(List<test> list)
        {
            DataTable dt = null;
            try
            {
                dt = new DataTable();
                dt.Columns.Add("name");
                dt.Columns.Add("no");

                DataRow dr = dt.NewRow();
                dr["name"] = "--未设置--";
                dr["no"] = "-1";
                dt.Rows.InsertAt(dr, 0);

                foreach (test v in list)
                {
                    dr = dt.NewRow();
                    dr["name"] = v.name;
                    dr["no"] = v.no;
                    dt.Rows.Add(dr);
                }
            }
            catch
            { 
                
            }
            return dt;
        }

当然了,对象是少不了的。这里假设是test

1     public class test
2     {
3         public string name{get;set;}
4         public string no{get;set;}
5     }

ok.可以正常运行了。

原文地址:https://www.cnblogs.com/honsty/p/3174694.html