Проблеме с DropDownList
От: Аноним  
Дата: 15.04.03 05:17
Оценка:
Если сделать так

MyDropDownList.DataBind();
MyDropDownList.Insert(0,Item);
MyDropDownList.SelectedIndex = 1;

То вываливается исключение , как это победить ?
Re: Проблеме с DropDownList
От: Nisus  
Дата: 15.04.03 06:00
Оценка:
Линейная комбинация перечисленного
MyDropDownList.Insert(0,Item);
MyDropDownList.DataBind();
MyDropDownList.SelectedIndex = 1;
Дело в том, что реальная привязка данных происходит по событию DataBind, поэтому если обращаться к коллекции элементов раньше, чем произошло это событие, то будет исключение, потому как их там реально еще нет.
Re[2]: Проблеме с DropDownList
От: Аноним  
Дата: 15.04.03 06:04
Оценка:
А как мне тогда выбрать нужный мне элемент ?
Re[3]: Проблеме с DropDownList
От: Nisus  
Дата: 15.04.03 06:15
Оценка:
не вижу проблем, вот даже попробовал
<%@ Page language="c#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
ddlTest.Items.Insert(0, new ListItem("Hello", "12"));
ddlTest.Items.Insert(0, new ListItem("GoodBye", "12"));
ddlTest.Items.Insert(0, new ListItem("Merci", "12"));
}
ddlTest.SelectedIndex = 2;
}
</script>
</HEAD>
<body>
<form runat=server>
<asp:DropDownList id="ddlTest" style="Z-INDEX: 101; LEFT: 96px; POSITION: absolute; TOP: 104px" runat="server"></asp:DropDownList>
</form>
</body>
</HTML>
Re: Проблеме с DropDownList
От: mogadanez Чехия  
Дата: 15.04.03 06:16
Оценка:
А>MyDropDownList.Insert(0,Item);

Must Be :

MyDropDownList.Items.Insert(0,Item);
... << RSDN@Home 1.0 beta 6a >>
Re[2]: Проблеме с DropDownList
От: Аноним  
Дата: 15.04.03 06:18
Оценка:
Эта строчка нужна ( очень )
Re[2]: Проблеме с DropDownList
От: mogadanez Чехия  
Дата: 15.04.03 06:19
Оценка:
Здравствуйте, Nisus, Вы писали:

N>Линейная комбинация перечисленного

N>MyDropDownList.Insert(0,Item);
N>MyDropDownList.DataBind();
N>MyDropDownList.SelectedIndex = 1;
N>Дело в том, что реальная привязка данных происходит по событию DataBind, поэтому если обращаться к коллекции элементов раньше, чем произошло это событие, то будет исключение, потому как их там реально еще нет.

в данном варианте вызов Databind вообще излишен, так он привязывает данные из DataSource, при добавлении Itemov вручную DataBind не нужен
... << RSDN@Home 1.0 beta 6a >>
Re[4]: Проблеме с DropDownList
От: Аноним  
Дата: 15.04.03 06:22
Оценка:
Так то будет работать , но у меня задача другая:

1. Считать данные из DataSet в DropDownList
2. добавить один элемент ( которого нет в DataSet )
3. Установить нужную позицию в DropDownList

P.S

Чувствую придется строчку в DataSet добавлять
Re[3]: Проблеме с DropDownList
От: mogadanez Чехия  
Дата: 15.04.03 06:25
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Эта строчка нужна ( очень )


метод insert есть у коллекции items, а не у DDL Как у тебя в примере.

вот мой вариант кода работающий...

lstMyDDL.DataSource=MyEngine.GetDDLSource();
lstMyDDL.DataTextField="Name";
lstMyDDL.DataValueField="ID";
lstMyDDL.DataBind();
lstMyDDL.Items.Insert(0,new ListItem("test","test"));
lstMyDDL.SelectedIndex=1;



в данном примере, мы сначала делаем биндинг, а потом добавляем 1 доп элемент.

кстати, можете привести текст эксепшена?

мне подумалось следующее... в вашем варианте вы пытаетесь вызвать lstMyDDL.SelectedIndex=1;
если у вас в DDL всего 1 логично что будет эксепшен, ведь нумерация с нуля...
... << RSDN@Home 1.0 beta 6a >>
Re[4]: Проблеме с DropDownList
От: Аноним  
Дата: 15.04.03 10:58
Оценка:
Не понял что есть DDL

У меня последовательность действий такова :


List.DataBind();
List.Insert(0,item);
List.SlectedIndex = 1;

Сообщение об ошибке:
A DropDownList cannot have multiple items selected.
Re[5]: Проблеме с DropDownList
От: Аноним  
Дата: 15.04.03 10:59
Оценка:
Пардон , так :

List.DataBind();
List.Items.Insert(0,item);
List.SlectedIndex = 1;
Re[5]: Проблеме с DropDownList
От: mogadanez Чехия  
Дата: 15.04.03 11:18
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Не понял что есть DDL


А>У меня последовательность действий такова :


А>

А>List.DataBind();
А>List.Insert(0,item);
А>List.SlectedIndex = 1;

А> Сообщение об ошибке:

А>A DropDownList cannot have multiple items selected.

DDL — DropDownList

чтобы делать DataBind() нужно указать List.DataSource=...
Вы это делаете? из приведенного фрагмента это не очевидно.
на какой строке падает? на 2й или на 3й?
проверьте после добавления элемента, сколько элементов находится в Листе.
... << RSDN@Home 1.0 beta 6a >>
Re[5]: Проблеме с DropDownList
От: Аноним  
Дата: 16.04.03 12:18
Оценка:
А>List.DataBind();
А>List.Insert(0,item);
А>List.SlectedIndex = 1;

А> Сообщение об ошибке:

А>A DropDownList cannot have multiple items selected.

Тебе фигню порют
Перед 3-1 строкой надо сделать SelectedItem'у Selected = false.
Re[6]: Проблеме с DropDownList
От: mogadanez Чехия  
Дата: 16.04.03 12:49
Оценка:
Здравствуйте, <Аноним>, Вы писали:


А>>List.DataBind();

А>>List.Insert(0,item);
А>>List.SlectedIndex = 1;

А>> Сообщение об ошибке:

А>>A DropDownList cannot have multiple items selected.

А>Тебе фигню порют

А>Перед 3-1 строкой надо сделать SelectedItem'у Selected = false.

не фигня...
такое работает: ничего в false ставить не надо.

lstMovecategory.SelectedIndex=1;
lstMovecategory.SelectedIndex=0;
lstMovecategory.SelectedIndex=2;
... << RSDN@Home 1.0 beta 6a >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.