DropDownList Web Control Problem

8 отговора 209 прегледа
#1

DropDownList Web Control Problem

Това е малко код:

this.ddl_filter_receiver.ClearSelection();
for (ii=0; ii<this.ddl_filter_receiver.Items.Count; ii++)
{
if (this.ddl_filter_receiver.Items[ii].Value == this.txt_receiver.Text)
{
this.ddl_filter_receiver.SelectedIndex = ii;
break;
}
}

където: ddl_filter_receiver е DropDownList Web Control, а txt_receiver е най-обикновен TextBox Web Control, който съдържа стойността, която искам да е селектната в падащият списък (има такава стойност в същият списък).

Това нещо ми изкарва грешка DropDownList cannot have multiple selected items.

А като напиша следното:

this.ddl_filter_receiver.ClearSelection();
for (ii=0; ii<this.ddl_filter_receiver.Items.Count; ii++)
{
if (this.ddl_filter_receiver.Items[ii].Value == this.txt_receiver.Text)
{
this.ddl_filter_receiver.SelectedIndex = 2;
break;
}
}

грешката изчезва и селектнат става съответният item и всичко е наред.
Въпросът: ЗАЩО СТАВА ТАКА?????

Как може с числена стойност да работи, а с променлива със същата стойност да не работи?! Framework ли е бъгав, или аз просто незнам как да сетна скапания SelectedIndex

"За да чуеш, трябва да мълчиш" (Оджиън)
Отговор
в отговор на Borg #2

Re: DropDownList Web Control Problem

Преди всичко това напиши:

ddl_receiver.SelectedItem.Selected=false;

може и да съм объркал името на дропдоуна.

Отговор
в отговор на BlackEarl #3

Re: DropDownList Web Control Problem

Не става - всички методи за изчистване на селекшъна пробвах (цикъл и false на всичко; както ти си написал; както и -1 на SelectedIndex), къде ли не го чистих този списък, във всяка една възможна функция го слагах - не става - все същата грешка дава като ползвам променливата

"За да чуеш, трябва да мълчиш" (Оджиън)
Отговор
в отговор на Borg #4

Re: DropDownList Web Control Problem


При мен кода ти няма проблени и в двата случая.

ClearSelection ме съмнява

This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.

[C#]
public virtual void ClearSelection();

Отговор
в отговор на BlackEarl #5

Re: DropDownList Web Control Problem

Хъх... на кой framework го пускаш?
освен РС-то ми нещо да се е омазало :((

ок, 10х. Ще видя какво ще правя в този случай :(

"За да чуеш, трябва да мълчиш" (Оджиън)
Отговор
в отговор на BlackEarl #6

Re: DropDownList Web Control Problem

Сега го пробвах със и без ClearSelection на Web Servera (със сигурност не е омазан), и пак гърми. Направо се чудя какво да правя с тоя селекшън

"За да чуеш, трябва да мълчиш" (Оджиън)
Отговор
в отговор на Borg #7

Re: DropDownList Web Control Problem

FrameWork-а е 2.
ClearSelection() не прави проблеми просто забелязах в хелп-а че не е предназначен за ползване.

Задължително ли трябва да търсиш елемента с итерация.Пробвай нещо такова:

ListItem li=ddl_filter_receiver.Items.FindByValue(txt_receiver.Text);
if(li!=null)
{
ddl_filter_receiver.SelectedItem.Selected=false;
li.Selected=true;
}

Отговор
в отговор на BlackEarl #8

Re: DropDownList Web Control Problem

Пак не става :(((((( Явно Framework е бъгав - ще се чака 2 да излезе официално.

"За да чуеш, трябва да мълчиш" (Оджиън)
Отговор
в отговор на Borg #9

Re: DropDownList Web Control Problem

твоя код с ClearSelection бачка супер при мене ...

Все пак пробвай това:

object o = null;

this.ddl_filter_receiver.ClearSelection();
this.ddl_filter_receiver.SelectedIndex = -1;

for (ii=0; ii<this.ddl_filter_receiver.Items.Count; ii++)
{
. . . if (this.ddl_filter_receiver.Items[ii].Value == this.txt_receiver.Text)
. . . . . . o = this.ddl_filter_receiver.Items[ii];

. . . this.ddl_filter_receiver.Items[ii].Selected = false;
}

this.ddl_filter_receiver.SelectedIndex = this.ddl_filter_receiver.Items.IndexOf(o);

това определено е бъг ... ClearSelection би трябвало да оправи нещата без останалите галимации ...


XM TurboCT .. where comfort meets power
Отговор