Tema: Re: C#, ComboBox, DropDown
Autorius: Jornada Del Muerto
Data: 2010-05-19 15:12:34
"zZz" <zZz@zirzilia.lt> wrote in message news:ht085a$1gv$1@trimpas.omnitel.net...
> Turiu ComboBox'ą, kurio DataSource'as yra DataView (filtruoja reikšmes 
> ComboBox.DisplayMember like '%ComboBox.Text%').
> Kaip padaryti, kad ComboBox'as po DropDown įvykio parinktų pirmą reikšmę iš 
> sąrašo ir nepakeistų Text'o? :) 
>

Sveiks,

    Jei gerai supratau problema tai, mano controlas toki metoda turi (tiesa by default pas mane visose select uzklausose grazinamas ID, NAME,... laikomasi kad pirmas laukas visada bus ID, antras pavadinimu - combo atveju jis visada vaizduojamas kaip tekstas combo):

 public class AlphaDataGridView : DataGridView, ISelectableDbItem
 {
  #region Methods
  /// <summary>
  /// 
  /// </summary>
  /// <param name="index">Datagridview column index</param>
  /// <param name="table">Table</param>
  public void LoadColumnCombo (int index, DataTable table)
  {
   if (table != null &&
    index < Columns.Count)
   {
    if (Columns[index] is DataGridViewComboBoxColumn &&
     table.Columns.Count > 1)
    {
     DataGridViewComboBoxColumn c =
      (DataGridViewComboBoxColumn)Columns[index];
     
     // if we have datasource
     if (DataSource != null)
     {
      // Valid only for data binded DataGridViews which have DataTable assigned
      if (c.ValueType != table.Columns[0].DataType)
      {
       Messages.Error ("DataGridView (" + c.DataGridView.Name + ") combo column (" +
        c.Name + ") value type (" + c.ValueType.ToString () +
        ") does not match binded DataTable value type (" + table.Columns[0].DataType.ToString () +
        ")!\r\n\r\nPlease contact support!");

       // Do nothing then!
       return;
      }
     }

     c.DataSource = table;
     c.ValueMember = table.Columns[0].ColumnName;
     c.DisplayMember = table.Columns[1].ColumnName;
    }
   }
  }