Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / combobox и свойство EnableViewState / 17 сообщений из 17, страница 1 из 1
21.09.2009, 15:52:58
    #36208075
JekaCher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
Друзья использую ajax-й combobox при выключении свойства EnableViewState не работает combobox. Но это и понятно, т.к. combobox содержит данные которые нужно выбирать. У меня проблема следующего рода, combobox содержит 100 записей и при trace.axd видно, что он занимает 50kb, со свойством EnableViewState=true, 100kb. А если на форме 3 и более combobox? Это катастрофа. Помогите оптимизировать страницу. Может есть другой элемент управления. Без combobox(у меня их 2 на странице), страница весит 36kb, с ними 236kb.
...
Рейтинг: 0 / 0
21.09.2009, 16:01:00
    #36208103
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
да 100 элементов много
...
Рейтинг: 0 / 0
22.09.2009, 10:39:53
    #36209252
JekaCher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
Использование списка тоже ничего не дает. У меня список со статьями и их должно быть 100. Кто-нибудь знает решение данной проблемы?
...
Рейтинг: 0 / 0
22.09.2009, 10:58:21
    #36209349
n_string
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
Ну, а что мешает
Код: plaintext
EnableViewState="false" 
...
Рейтинг: 0 / 0
22.09.2009, 12:31:06
    #36209786
itsandy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
что значит ajax-й комбобокс? в смысле из тулкита?
...
Рейтинг: 0 / 0
22.09.2009, 17:28:58
    #36211056
JekaCher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
Да из toolkita. А если вырубить EnableViewState=false, то значения при выборе нового значения из списка оно пустое. ComboBox.SelectedText и ComboBox.SelectedValue ничего не дает значения пустые.
...
Рейтинг: 0 / 0
22.09.2009, 19:37:53
    #36211324
itsandy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
Встречный вопрос: каким образом и когда именно заполняется данными ваш комбобокс?
...
Рейтинг: 0 / 0
23.09.2009, 09:55:14
    #36211891
JekaCher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
В Page.Load:
if (!Page.IsPostBack)
{
foreach(DataRow row in spisDataSet.Счета.Rows)
{
ListItem list = new ListItem();
list.Text = "---";
list.Value = "---";
ComboBox1.Items.Add(list);
}
ComboBox1.DataBind();
}
...
Рейтинг: 0 / 0
23.09.2009, 10:14:56
    #36211932
itsandy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
происходит следующее. ваш комбобокс заполняется данными из датасета при первой загрузке страницы. а дальше, при обратных отправках, данные берутся уже из состояния вида (при условии EnableViewState=true). А если вы его отключаете, то комбобокс пустой, но это и логично. Ведь его заполнение данными из бд происходит в вашем коде ТОЛЬКО при первой загрузке страницы.
Вы можете сделать EnableViewState=false, и убрать условие if (!Page.IsPostBack), и тогда все будет работать.
но в этом случае запрос к бд будет идти при каждой загрузке страницы. так что рекомендую здесь применить еще кеширование.
...
Рейтинг: 0 / 0
23.09.2009, 13:56:25
    #36212549
JekaCher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
Т.е. Cashe.Insert("Table",Table) и при Page.Load подставлять значения из Cashe["Table"].
...
Рейтинг: 0 / 0
23.09.2009, 15:24:56
    #36212810
itsandy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
ну да, типа того. ну а стратегию кеширования выбираете и реализуете вы, в зависимости от логики работы приложения.
суть такая - при первом извлечении данных поместить их в кеш, а при все последующих запросах извлекать из кеша.
ну вообще кеширование-обширная тема, почитайте литературку.
...
Рейтинг: 0 / 0
23.09.2009, 16:27:51
    #36213061
JekaCher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
И все таки вопрос если данные будут браться из кэша то чтобы их вставить в combobox я должен вызвать databind(). А это отправка со 100 записями. И если не делать
if (!Page.IsPostBack)
{
}
будут постоянно гоняться данные. Какая должна быть стратегия кэширования подскажите пожалуйста.
...
Рейтинг: 0 / 0
23.09.2009, 16:37:20
    #36213093
JekaCher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
Хотя я проверил сейчас трассировку при оптправке(post) страницы данные не передались. По крайней мере страница стала весить очень мало. Объясните, что отсылается при combobox.databind().
...
Рейтинг: 0 / 0
23.09.2009, 16:40:28
    #36213097
Tigritto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
Предлагаю откзаться от такого комбобокса (скорее всего он не ориентирован на такие объемы) и написать свой который более соответствует задаче (100 записей пользовтель все равно скорее всего одновременно не смотрит да в каждый из 3ч комбобоксов одновременно тоже). Ajax вполне позволяет подгружть данные динамически и тут уже объем страницы не актуален т.к. объем постепенно наращивается. Попробуйте посмотреть в сторону AjaxToolkit как источника идей и приемов работы.
Еще можно просто перестроить интерфейс в сторону разгрузки под имеющиеся контролы.
...
Рейтинг: 0 / 0
23.09.2009, 17:30:28
    #36213236
itsandy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
JekaCher:
Хотя я проверил сейчас трассировку при оптправке(post) страницы данные не передались. По крайней мере страница стала весить очень мало. Объясните, что отсылается при combobox.databind().
при вызове combobox.databind() происходит привязка данных. поэтому, помещение такого кода в событии загрузки страницы, обновит ваш список, и выбранное ранее значение будет потеряно.
попробуйте сделать так,например. при выборе одного из пунктов этого списка,джаваскриптом заносите выбранный индекс в скрытое поле формы. а потом, после combobox.databind(), напишите код типа такого: combobox.SelectedIndex=hiddenField.Text;
и вообще, учитывайте что этот тулкитовский комбобокс - это ведь фикция. на самом деле это комбинация текствого поля,кнопки,и div-а где отображается информация списка.
кстати, думаю вам можно еще использовать AutoCompleteExtender.

2Tigritto. что значит "не предназначен", откуда такая информация? вы и правда думаете что человеку для данной цели проще свой контрол написать?:) 100 записей не так уж и много,плюс есть авподстановка по вводимым символам. вполне можно его использовать.
...
Рейтинг: 0 / 0
23.09.2009, 18:29:57
    #36213384
JekaCher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
Такой код в событии загрузки страницы сильно нагрузит приложение?
spisDataSet.Счета.Merge(Cache["Счета"] as DataTable);
foreach (DataRow row in spisDataSet.Счета.Rows)
{
ListItem list = new ListItem();
list.Text = "";
list.Value = "";
ComboBox1.Items.Add(list);
}
ComboBox1.DataBind();
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
30.10.2011, 15:28:51
    #37504364
QArt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
combobox и свойство EnableViewState
EnableViewState=false

Page_Load(...)
{
Request.Form[cmbx.UniqueId] и работаешь с ним
}
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / combobox и свойство EnableViewState / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]