Tema: Re: C#, ComboBox, DropDown
Autorius: Jornada Del Muerto
Data: 2010-05-19 16:28:50
Jei stipriai nesigilinant as tau ka norejau pasakyt, kad man rodos buvus tokia situacija ir joje esme buvo tipu skirtume, koki ti uzdaves datagridview combo columnui kaip value ir koki tu duodi is datatable kuriuo fillinamas pats combobox jo value, jei sie tipai buna nesutampa tada rodo kazka tokio... prachekink ar jie sutampa ar ne...
:)
"zZz" <zZz@zirzilia.lt> wrote in message news:ht0mab$s2f$1@trimpas.omnitel.net...
> Labas ;)
>
> Reikia patikslint šitą.
> 0. Turiu, tarkim, DataView Rows'us:
> 12345
> 12435
> 31248
> 49841
>
> 1. Vedu ComboBox'e tekstą: 3
> 2. DataView atsifiltruoja į
> 12345
> 12435
> 31248
> 3. Kviečiu DropDown ir
> 3.1. Parinktas item'as sąraše - 31248;
> 3.2. Text'as pakeistas į 31248.
>
> Reikia, kad parinktas itemas būtų 12345 arba nieko, o Text'as - nepakeistas,
> t.y. 3.
>
> Čia - KeyUp'as, kuris keičia DataView:
>
> protected override void OnKeyUp(KeyEventArgs e)
> {
> base.OnKeyUp(e);
>
> //Get the Typed Text and Find it in the list
> string sTypedText = this.Text;
>
> if (allowPartialSearch)
> {
> this.BeginUpdate();
> this.SuppressItemChangeEvent = true;
> //this.DroppedDown = false;
>
> string filterOrig = viewData.RowFilter;
> string filter = (string.IsNullOrEmpty(sTypedText) ? "" :
> string.Format("{0} like '%{1}%'", this.DisplayMember, sTypedText));
>
> viewData.RowFilter = filter;
> // If we found the Typed Text in the list then Autocomplete
> if (viewData.Count > 0)
> {
> this.Text = sTypedText;
> this.SelectionStart = sTypedText.Length;
> orgText = sTypedText;
> }
> else
> {
> viewData.RowFilter = filterOrig;
> this.Text = orgText;
> this.SelectionStart = orgText.Length;
> }
> this.SuppressItemChangeEvent = false;
> this.EndUpdate();
> }
> }
>
>
> /* Help, pls! :) */
>
>
> "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):
>