ПРоблема с ListBox, его заполнением и Page_Load
От: Аноним  
Дата: 20.07.05 12:09
Оценка:
На странице есть ListBox, у к-рого EnableViewState = false. Он заполняется по-разному в зависимости от того стоит галка на чекбоксе или нет. Заполнение делал и в Page_Load и в Page_Init. А по нажатию на кнопку надо соответственно из этого ListBox прочитать то, что в нем выделенно. Но при нажатии на кнопку SelectedValue для этого листбокса пусто. Как мне быть?
Re: ПРоблема с ListBox, его заполнением и Page_Load
От: mogadanez Чехия  
Дата: 20.07.05 12:27
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>На странице есть ListBox, у к-рого EnableViewState = false. Он заполняется по-разному в зависимости от того стоит галка на чекбоксе или нет. Заполнение делал и в Page_Load и в Page_Init. А по нажатию на кнопку надо соответственно из этого ListBox прочитать то, что в нем выделенно. Но при нажатии на кнопку SelectedValue для этого листбокса пусто. Как мне быть?


1. включить ViewState
2. посмотреть руками в коллекции Request.Form[ YourListBox.UniqueID ] выбраное значение
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[2]: ПРоблема с ListBox, его заполнением и Page_Load
От: Аноним  
Дата: 20.07.05 13:22
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>Здравствуйте, <Аноним>, Вы писали:


А>>На странице есть ListBox, у к-рого EnableViewState = false. Он заполняется по-разному в зависимости от того стоит галка на чекбоксе или нет. Заполнение делал и в Page_Load и в Page_Init. А по нажатию на кнопку надо соответственно из этого ListBox прочитать то, что в нем выделенно. Но при нажатии на кнопку SelectedValue для этого листбокса пусто. Как мне быть?


M>1. включить ViewState

M>2. посмотреть руками в коллекции Request.Form[ YourListBox.UniqueID ] выбраное значение

эти варианты я знаю. Покрасивее что-нибудь есть?
Re[3]: ПРоблема с ListBox, его заполнением и Page_Load
От: mogadanez Чехия  
Дата: 20.07.05 13:28
Оценка:
Здравствуйте, <Аноним>, Вы писали:

M>>1. включить ViewState

M>>2. посмотреть руками в коллекции Request.Form[ YourListBox.UniqueID ] выбраное значение

А>эти варианты я знаю. Покрасивее что-нибудь есть?


Красота понятие субъективное
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[4]: ПРоблема с ListBox, его заполнением и Page_Load
От: Аноним  
Дата: 20.07.05 13:40
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>Здравствуйте, <Аноним>, Вы писали:


M>>>1. включить ViewState

M>>>2. посмотреть руками в коллекции Request.Form[ YourListBox.UniqueID ] выбраное значение

А>>эти варианты я знаю. Покрасивее что-нибудь есть?


M>Красота понятие субъективное


В общем, я хочу, не включая viewstate(нафига мне удвоенный объем текста на клиенте), прочитать выделенный в листе элемент через .SelectedItem или .SelectedValue
Re[5]: ПРоблема с ListBox, его заполнением и Page_Load
От: mogadanez Чехия  
Дата: 20.07.05 13:57
Оценка:
Здравствуйте, <Аноним>, Вы писали:


M>>Красота понятие субъективное


А>В общем, я хочу, не включая viewstate(нафига мне удвоенный объем текста на клиенте), прочитать выделенный в листе элемент через .SelectedItem или .SelectedValue


унаследуйся от ListBoxa
перегрузи метод DataBind()

примерно так: (код не рабочий)

 override void DataBind()
 {
 base.DataBind();
 FixSelectedItem(); 
 }
 
 
 public void FixSelectedItem ()
 {
 string selected_value = Request.Form[this.UniqueID];
 ListItem selected_item = this.Items.FindByValue( selected_value );
 if ( selected_item != null )     
    this.SelectedIndex = this.Items.IndexOf( selected_item ); 
 
 }



FixSelectedItem вынесен в отдельный метод, для того чтобы если ты добавляешь руками элементы а не биндишь, в конце вызываешь этот метод просто и все.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[6]: ПРоблема с ListBox, его заполнением и Page_Load
От: Аноним  
Дата: 20.07.05 14:02
Оценка:
Здравствуйте, mogadanez, Вы писали:

M>Здравствуйте, <Аноним>, Вы писали:



M>>>Красота понятие субъективное


А>>В общем, я хочу, не включая viewstate(нафига мне удвоенный объем текста на клиенте), прочитать выделенный в листе элемент через .SelectedItem или .SelectedValue


M>унаследуйся от ListBoxa

M> перегрузи метод DataBind()


M>FixSelectedItem вынесен в отдельный метод, для того чтобы если ты добавляешь руками элементы а не биндишь, в конце вызываешь этот метод просто и все.


Я биндю — т.е. вызываю lstDEMO.DataBind(). Ручками только датасет заполняется.
Re: ПРоблема с ListBox, его заполнением и Page_Load
От: Аноним  
Дата: 21.07.05 11:33
Оценка:
на мой взгляд это глюк asp.net, т.к. заполнение SelectedIndex происходит в IPostBackDataHandler.LoadPostData, но как мы видим SelectedIndex не меняется, если заполнение данными происходит в Page_Load а не в OnInit. хотя после Page_Load срабатывает ProcessPostData Second Try


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
ПРоблема с ListBox, его заполнением и Page_Load
От: Аноним  
Дата: 21.07.05 11:54
Оценка:
Вот тут есть.

Все должно быть просто, очень просто, настолько просто — насколько это возможно!
Оренбургское сообщество .NET разработчиков
Мой блог


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.