p; if ((((this.Page != null) && this.Page.IsPostBack) && this._stateLoaded) && (item1 == null))
24 {
25 throw new ArgumentOutOfRangeException("value", SR.GetString("ListControl_SelectionOutOfRange", new object { this.ID, "SelectedValue" }));
26 }
27 if (item1 != null)
28 {
29 this.ClearSelection();
30 item1.Selected = true;
31 }
32 }
33 this.cachedSelectedValue = value;
34 }
35}
36
37
哈哈 原来只有在this.Page.IsPostBack的情况下,赋值才会出错。
只需这样赋值:
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue("qqcrazyer"));
就是如果通过FindByValue没有找到指定项则为null,而Items.IndexOf(null)会返回-1.