Tema: Re: C#, ComboBox, DropDown
Autorius: Jornada Del Muerto
Data: 2010-05-24 14:31:59
Jis neatsitiks jei bus praeitas testavimas, sis msg suveikia pirmo programos starto metu kai tik pastebi nesutampancius duomenu tipus nustatytus datagridview ir jo combo value, islindus tokiam msg, programmeris pataiso savo klaida ir viskas, jos nevyksta niekad release versijoj.

"none" <none@none.lt> wrote in message news:ht9li9$s82$1@trimpas.omnitel.net...
> Čia offtopic, bet čia toks produkcijoje?
> 
> 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!");
> 
> "Jornada Del Muerto" <ask@me.email> wrote in message 
> news:ht0kji$okl$1@trimpas.omnitel.net...
>> "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;
>>    }
>>   }
>>  }
>> 
> 
>