页面中放有多个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.可以正常运行了。