[★]ComboBox 經驗總結[動態綁定資料之後,靜態添加一條資料] 轉

來源:互聯網
上載者:User

一: ComboBox  經驗總結[動態綁定資料之後,靜態添加一條資料]

  DropDowStyle=DropDown       允許使用者鍵入清單項目的文字框,為預設值
  DropDownSysle=DropDownList  顯示一個項列表,使用者可從中選擇一項

A: 在屬性 Iitems 添加項

   CobShow.SelectedIndex          選擇項的索引
   CobShow.SelectedItem            選擇項的文本
   CobShow.SelectText                空值
   CobShow.SelectValue              報錯...
   CobShow.Items[CobShow.SelectedIndex].ToString()  選擇項的文本

B:在程式中添加 CobShow.Item.Add() 結果和上面一樣
  
C: A B  兩種方式同時添加          結果和上面一樣

D:動態綁定資料

   CobShow.SelectedIndex          選擇項的索引
   CobShow.SelectedItem            System.DataRow.DefaultView
   CobShow.SelectText               空值
   CobShow.SelectValue             選擇項的 VALUE 值
   CobShow.Text                        選擇項的 文本 值
   CobShow.Items[CobShow.SelectedIndex].ToString()  System.DataRow.DefaultView

E: 如果先通過屬性或者程式 寫入了值之後,動態綁定的時候 會清空原來的值

F: 如果動態綁定資料之後,在通過程式 CobShow.Item.Add('zhi'); 報錯...[解決辦法如下]
 
  FSubject 是要顯示的文本,FTech 是要傳遞的值

         DataTable dt = cboShow.DataSource as DataTable;
         DataRow dr = dt.NewRow();

         dr["FSubject"] = "---Text---";
         dr["FTech"]="---Value---";

         dt.Rows.InsertAt(dr, 0); 插入到第一行
         dt.Rows.Add(dr); 追加到最後一行

 解釋: dr["FSubject"],dr["FTech"] 是一行中的2列,賦值之後就完整的添加一行
       CobShow.Text="---Text---",CobShow.SelectValue="---Value---"

posted on 2007-06-14 14:15 天山寒雪 閱讀(281) 評論(1)  編輯 收藏 引用 網摘 所屬分類: 技術總結


FeedBack:

# re: [★]ComboBox 經驗總結[動態綁定資料之後,靜態添加一條資料]2007-07-03 16:34 | 天山寒雪DataTable dt = ds.Tables[0];
DataRow dr = dt.NewRow();
dr["A"] = "0";
dr["B"] = "請選擇";
dt.Rows.InsertAt(dr, 0);

cboshow.DataSource = ds.Tables[0]; // 這個時候會觸發事件
cboshow.DisplayMember = "B"; // 這個時候也會觸發事件
cboshow.ValueMember = "A";

// 以上不愧是一個非常好的方法,但是當資料庫中有多行的時候,也要一個一個賦值嗎?

//下面繼續討論,假如cboShow 有事件 selectIndexchange 賦值的時候 會不會觸發事件呢 ?

//為什麼要討論的時候,因為我們有的時候需要在載入的時候不觸發事件,而是選擇的時候觸發事件,

//從上面可以看到DataSource,DisplayMember 的時候都會觸發一次 事件,以後都不會觸發

//此時SelectedValue 一直為 System.Data.DataRowView;;直接在 事件中判斷 selectvalue 的值...

if (cboshow.SelectedValue.ToString() != "System.Data.DataRowView")
{
string cc = "111";

}
//[2]
//if (cboshow.Text != "System.Data.DataRowView")
//{
// MessageBox.Show("123");
//}  回複  更多評論

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.