Asp.net-不能在DropDownList中選擇多個項
阿新 • • 發佈:2019-01-07
一個錯誤開啟了新的視角。
錯誤描述:
不能在DropDownList中選擇多個項。
錯誤原因:
我在一個頁面載入中想實現,如果此頁面要執行新增功能,就把dropdownlist繫結的資料中新增一項“請選擇”,並設為預設項。如果此頁面要執行修改功能,就把相應查出來的欄位值設為預設項。
我的錯誤思路是:載入的時候設一個預設值,如下:
this.ddlWorkStype.Items.Insert(0, new ListItem("請選擇", "0"));
this.ddlWorkStype.SelectedIndex = 0;
查出來資料,再重新設一下預設值:
this.ddlWorkStype.Items.FindByText(worksList[0].workstype).Selected = true; //設定預設類別
從邏輯上來看,這個是沒問題的。But,報開頭的錯誤,我以為資料出問題了,有重複的資料,因此把資料庫中的重複資料都進行了修改,依舊報錯。百思不得其解。請來亮亮調錯。才知道原因所在。
因為我設了兩次預設值,而ddl控制元件的機制是,它不會自動取消上一個設定的預設值,但是它又不允許出現兩個預設值,於是就報錯了。
兩種方法解決問題:
1、只設置一次預設值,規避錯誤,不要去觸碰這個機制。
2、想多次設定預設值,又不想它報錯,既然不能自動取消,那就手動取消好了。
this.ddlWorkStype.Items[0].Selected = false;
總結:
完事兒又試了一下我當初的想法,資料原因,把資料庫中整出重複資料,發現——它是不會報錯的,預設把第一次出現的資料設為了預設值。想法對不對,試過才知道。
一次錯誤,開啟了一個新的視角。要了解一下控制元件的執行機制。asp.net控制元件也是封裝好的,用程式碼寫出來的,它提供什麼樣的服務,細節還是得考慮一下的,這個需要慢慢積累,大家有沒有相關資料什麼的分享呢。