今天在系統代碼中發現了一個BUG,是關於DropDownList 的SelectedValue 與SelectedIndex 。
系統原來的開發人員喜歡直接用SelectedValue 設置選中值。這樣就會出現再次綁定值時如果選中值不在新綁定的數據集引發的異常:
“DropDownList1”有一個無效 SelectedValue ,因爲它不在項目列表中。參數名: value
解決辦法:在代碼中儘量不要用SelectedValue ,而用SelectedIndex ,例如:
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue("XXX"));
或者
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByText("XXX"));
這樣在再次綁定時就不會出現上述異常。
說明:第二次綁定時
將DropDownList1.SelectedIndex = -1;