DropDownList Web Control Problem
8 отговора
209 прегледа
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
"За да чуеш, трябва да мълчиш" (Оджиън)
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
"За да чуеш, трябва да мълчиш" (Оджиън)
Re: DropDownList Web Control Problem
Преди всичко това напиши:
ddl_receiver.SelectedItem.Selected=false;
може и да съм объркал името на дропдоуна.
ddl_receiver.SelectedItem.Selected=false;
може и да съм объркал името на дропдоуна.
Re: DropDownList Web Control Problem
Не става - всички методи за изчистване на селекшъна пробвах (цикъл и false на всичко; както ти си написал; както и -1 на SelectedIndex), къде ли не го чистих този списък, във всяка една възможна функция го слагах - не става - все същата грешка дава като ползвам променливата 
"За да чуеш, трябва да мълчиш" (Оджиън)
"За да чуеш, трябва да мълчиш" (Оджиън)
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();
Re: DropDownList Web Control Problem
Хъх... на кой framework го пускаш?
освен РС-то ми нещо да се е омазало :((
ок, 10х. Ще видя какво ще правя в този случай :(
"За да чуеш, трябва да мълчиш" (Оджиън)
освен РС-то ми нещо да се е омазало :((
ок, 10х. Ще видя какво ще правя в този случай :(
"За да чуеш, трябва да мълчиш" (Оджиън)
Re: DropDownList Web Control Problem
Сега го пробвах със и без ClearSelection на Web Servera (със сигурност не е омазан), и пак гърми. Направо се чудя какво да правя с тоя селекшън 

"За да чуеш, трябва да мълчиш" (Оджиън)
"За да чуеш, трябва да мълчиш" (Оджиън)
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;
}
ClearSelection() не прави проблеми просто забелязах в хелп-а че не е предназначен за ползване.
Задължително ли трябва да търсиш елемента с итерация.Пробвай нещо такова:
ListItem li=ddl_filter_receiver.Items.FindByValue(txt_receiver.Text);
if(li!=null)
{
ddl_filter_receiver.SelectedItem.Selected=false;
li.Selected=true;
}
Re: DropDownList Web Control Problem
Пак не става :(((((( Явно Framework е бъгав - ще се чака 2 да излезе официално.
"За да чуеш, трябва да мълчиш" (Оджиън)
"За да чуеш, трябва да мълчиш" (Оджиън)
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
Все пак пробвай това:
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