none
binding後的combobox如何取得items的值? RRS feed

  • 問題

  • 我先把資料binding到combobox中

    資料如下

    員工a

    員工b

    員工c

     

    但我後來要去比對combobox中的items時發現

    cboAddTeam.Items[0].ToString ()的值會是"System.Data.DataRowView"

    而不是「員工a」

    請問我要如何取出「員工a」呢?

     

    2010年5月19日 上午 07:27

解答

  •       #region Init Combobox 
          DataTable dt = new DataTable();
          dt.Columns.Add("text");
          dt.Columns.Add("value");
          dt.Rows.Add(new string[] { "員工a", "a" });
          dt.Rows.Add(new string[] { "員工b", "b" });
          dt.Rows.Add(new string[] { "員工c", "c" });
    
          this.cboAddTeam.DataSource = dt;
          this.cboAddTeam.DisplayMember = "text";
          this.cboAddTeam.ValueMember = "value";
          #endregion
    
          string strResource = ((DataRowView)this.cboAddTeam.Items[0])["text"].ToString();
          string strResource1 = ((DataRowView)this.cboAddTeam.SelectedItem)["text"].ToString(); 
    2010年5月19日 上午 07:50
    版主

所有回覆

  • 先瞭解一下你是如何Binding的, DataSource是否指向個是一個DataTable ?

     


    以下是簽名檔, 請勿沒事對號入座
    MSDN 文件庫很重要
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    進步的人會找尋自己程式中的缺點,半桶水則把自己程式的錯誤推到不相干事物的身上
    2010年5月19日 上午 07:36
    版主
  • 對~

    作法如下~

    cboAddTeam.DataSource = dt.Copy() ;

     

    2010年5月19日 上午 07:39
  •       #region Init Combobox 
          DataTable dt = new DataTable();
          dt.Columns.Add("text");
          dt.Columns.Add("value");
          dt.Rows.Add(new string[] { "員工a", "a" });
          dt.Rows.Add(new string[] { "員工b", "b" });
          dt.Rows.Add(new string[] { "員工c", "c" });
    
          this.cboAddTeam.DataSource = dt;
          this.cboAddTeam.DisplayMember = "text";
          this.cboAddTeam.ValueMember = "value";
          #endregion
    
          string strResource = ((DataRowView)this.cboAddTeam.Items[0])["text"].ToString();
          string strResource1 = ((DataRowView)this.cboAddTeam.SelectedItem)["text"].ToString(); 
    2010年5月19日 上午 07:50
    版主