在做留言板的時候,選擇第幾頁要用到DropDownList服務器控件,在後代碼文件給他賦值,頁面一測試拋出一個異常,到底是什麼原因呢?
異常如下:異常詳細信息: System.ArgumentOutOfRangeException: “DropDownList1”有一個無效 SelectedValue,因爲它不在項目列表中。
不知道大家有沒有遇到這樣的問題,我在網上找了一些資料,終於找到了解決方法,把方法寫下來,也給遇到和我同樣問題的人一個解決方法。
不多說了,方法如下:
此屬性返回選定的 ListItem 的 Value 屬性。通常使用 SelectedValue 屬性確定列表控件中選定項的值。如果選定了多個項,則返回索引最小的選定項的值。如果未選定任何項,則返回一個空字符串 ("")。SelectedValue 屬性還可以用於選擇列表控件中的某一項,方法是用該項的值設置此屬性。如果列表控件中的任何項都不包含指定值,則會引發 System.ArgumentOutOfRangeException。
只需這樣賦值:
this.lblPageCur.Text = "1";
this.DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue(this.lblPageCur.Text));
就是如果通過FindByValue沒有找到指定項則爲null,而Items.IndexOf(null)會返回-1.
原帖地址:http://www.cnblogs.com/lichang1987/archive/2008/10/02/1303163.html