powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / размер viewstate и datagrid
25 сообщений из 28, страница 1 из 2
размер viewstate и datagrid
    #33652843
puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня общий такой вопрос...

Какое разумное кол-во строк для datagrid стоит возвращать клиенту?
Ну и, собственно, хранить во viewstate?

У меня уже на 40 записях (правда, для каждой записи порядка 15 полей dataset) ощущается замедление скорости.

ViewState сжимается, но без сжатия он достаточно большой.
И на это сжатие - разжатие уходит несколько секунд.
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33652886
Ющенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
puhhУ меня общий такой вопрос...

Какое разумное кол-во строк для datagrid стоит возвращать клиенту?
Ну и, собственно, хранить во viewstate?

У меня уже на 40 записях (правда, для каждой записи порядка 15 полей dataset) ощущается замедление скорости.

ViewState сжимается, но без сжатия он достаточно большой.
И на это сжатие - разжатие уходит несколько секунд.

а чем вызвана необходимость в ViewState хранить dataset?
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33652900
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут дело имхо не в viewstate a в пейджинге.
Используете ?
Вот здесь я сделал 30 строк, причем последний столбец совместимости расчетный. Выигрыш в скорости получил после отказа от штатного пейджинга.
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33652916
Dats
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже боролся с этой проблемой. Посколько скорость загрузки на плохих каналах очень критична - запретил ViewState вообще.
Проще хранить DataTable в сессии. Тогда мы расходуем только память сервера, да и то не более 100 записей, т.к. постраничная выборка.
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33653037
Ющенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DatsТоже боролся с этой проблемой. Посколько скорость загрузки на плохих каналах очень критична - запретил ViewState вообще.
Проще хранить DataTable в сессии. Тогда мы расходуем только память сервера, да и то не более 100 записей, т.к. постраничная выборка.

а не проще сделать кэширование данных? с точки зрения производительности это самый оптимальный вариант
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33653108
puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за внимание.
Ситуация такая:

2Dats:
ну в общем я тоже храню теперь datatable вместо dataset, и храню на сервере.
но не быстро все это получается.

2big-duke:
пейджинг - использую, куда ж без него.
можете подсказать, или ссылку кинуть на инфу, как обойтись без штатного пейджинга?

2Ющенко: храню viewstate, т.к. в гриде мне нужно, помимо пейджинга, редактировать, сохранять, обновлять, фильтровать...
если буду знать, как это сделать без viewstate - с удовольствием сделаю.

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

кроме того, помимо грида, есть несколько dropdownlist, которые хранят свое состояние. и я, честно говоря, не понимаю, как хранить это без viewstate - ну, например, если пользователь выбирает фильтры, то они не должны меняться при перезагрузке странички. тоже кэш?

буду очень признательно за несколько полезных ссылок - у самой ничего подходящего найти не получилось :(
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33653139
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
puhh
пейджинг - использую, куда ж без него.

Профиллером проверьте сколько времени занимает выборка. Штатный пейджер с сервера забирает весь набор данных. Т.е. если в таблице 1000 строк , а у вас пейджер с шагом в 40 строк, то все равно на сервер пойдет запрос на 1000 строк.
Выход - написать свой.
Хорошие статьи есть здесь .
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33653187
puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2big-duke:
на самом деле, с базой работа быстро происходит.
т.е. загрузить 100 строк - это все почти мгновенно.
а вот работать с ними потом - уже невозможно :(
в смысле, медленно.

если сменить фильтр (сотрудник), чтобы загрузить другие данные (где, например, 5 строк) - это тож медленно.
ну логично, так как уже ненужная таблица в prerender сначала во viewstate запихивается, а только потом запрос к базе идет.

в обратную сторону, к сотруднику с большим кол-вом строк (хотя 100 строк - ну не так уж это и много, вроде?), все происходит гораздо быстрее.
опять же, понятно, не нужно большую таблицу во viewstate запихивать.


непонятно наверно объясняю :-\


профайлер показывает большую трату времени на compress-decompress, serialize-deserialize.
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33653196
puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, ну и если цифрами говорить - размер странички, когда я сохраняю viewstate на ней, а не на сервере, да еще и не сжимаю его - 300-400 kb
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33653209
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> еще и не сжимаю его - 300-400 kb
жесть... а на прямую с сервером, на уровне запросом не пробывали работать?
про вью стэйт забудьте, если надо что-либо сохранить в коде страницы - делайте в ручную


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33653229
puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Profil:
ну когда она обработанная - она ж маленькая :) 1-2 kb
но на обработку все это время и тратится :(

я не понимаю, что значит - "делать вручную".
если у меня есть список сотрудников (допустим, 30 штук), и мне нужно сохранять состояние списка - что мне нужно будет делать, при отключенном viewstate?
завести какой-нить label, где хранить selectedindex в этом списке?


и как с гридом-то работать?
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33654030
Ющенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
puhh

2Ющенко: храню viewstate, т.к. в гриде мне нужно, помимо пейджинга, редактировать, сохранять, обновлять, фильтровать...
если буду знать, как это сделать без viewstate - с удовольствием сделаю.

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

кроме того, помимо грида, есть несколько dropdownlist, которые хранят свое состояние. и я, честно говоря, не понимаю, как хранить это без viewstate - ну, например, если пользователь выбирает фильтры, то они не должны меняться при перезагрузке странички. тоже кэш?

буду очень признательно за несколько полезных ссылок - у самой ничего подходящего найти не получилось :(

насчет кэша проехали ......( я не понял идею)
впринципе big-duke прав нужно самому писать спец. элемент статьи на aspnetmania.com и тут sql.ru

Только я не совсем понял зачем хранить dropdownlist, тем более если они не встроены в ваш датагрид? они и так не меняются при перезагрузке
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33654039
Ющенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
puhh2Profil:
ну когда она обработанная - она ж маленькая :) 1-2 kb
но на обработку все это время и тратится :(

я не понимаю, что значит - "делать вручную".
если у меня есть список сотрудников (допустим, 30 штук), и мне нужно сохранять состояние списка - что мне нужно будет делать, при отключенном viewstate?
завести какой-нить label, где хранить selectedindex в этом списке?


и как с гридом-то работать?

зы вообще для прояснения ситуации нужно чуть более подробное описание исходной задачи (ТЗ)....... а то какое-то гадание на кофейной гуще!

насчет запросов Profil в каком-то смысле прав ....... может попробуйте забыть про вью стейты и увеличить частоту запросов к СУБД........ рассмотрите такой вариант...... если хороший сервер, нормальная субд, не кривые запросы и структура БД можно добиться неплохой производительности.

зы если честно я изначально занимался администр-нием sql server-a а потом начал заниматься asp.net, потому стараюсь смотреть на проблему с разных сторон.
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33655709
puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Ющенко:
похоже, придется работать с запросами к базе - так значительно быстрее, это уже проверено.

но я опять же не понимаю, как, например, реализовать редактирование, обновление и удаление без сохранения состояния?
достаточно просто идеи.

по поводу dropdownlist - я имела в виду элементы, которые, как и грид, bind-ятся при первой загрузке.

------------
про саму задачку,
есть список сотрудников, у которых есть различные заявки, по датам.
ну и к этим заявкам можно кучу всего привязывать (например, причины вызова).
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33658059
Ющенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
puhh по поводу dropdownlist - я имела в виду элементы, которые, как и грид, bind-ятся при первой загрузке.

пардон может за глупый вопрос вы условие не забываете в page_load ставить
Код: plaintext
If Me.IsPostBack = False
?


зы при последующих загрузках не нужно сохранять во вьюстейт ничего если стоит условие If Me.IsPostBack = False!

ззы тк при отправке клиентского запроса на сервер всегда вначале выполняется событие page_load а потом все остальное!

А сами dropdownlist они на форме лежат или встроены в датагрид у вас при режиме редактирования датагрида?
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33658131
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не редактируйте в гриде - и проблем не будет
Используйте отдельную форму для редактирования.

-- Tygra's --
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33658248
Ющенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraНе редактируйте в гриде - и проблем не будет
Используйте отдельную форму для редактирования.

-- Tygra's --

нет если нужно то можно dropdownlist и в датагрид его зашить и потом работать с методом
Код: plaintext
Private Sub MyGrid_ItemDataBound 
, чтобы он корректно работал

вообще тут зависит от требований на форме это проще всего сделать! А в случае если например проект интернет-магазин и пользователю нужно редактировать свою корзину с товарами
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33658327
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже если корзину - принцип малость другой. Не нужен там весь viewstate.
Да и datagrid в автоматическом режиме лучше вообще не использовать. Или ни в каком - через datareader лучше, чтобы все своими руками контролировать. Пока что полностью надеяться на контролы нельзя.

-- Tygra's --
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33658357
Ющенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraДаже если корзину - принцип малость другой. Не нужен там весь viewstate.
Да и datagrid в автоматическом режиме лучше вообще не использовать. Или ни в каком - через datareader лучше, чтобы все своими руками контролировать. Пока что полностью надеяться на контролы нельзя.

-- Tygra's --

я не про viewstate я про редактирование внутри таблицы по типу

Код: plaintext
1.
2.
<ItemTemplate>
										<asp:TextBox Text='<%#Container.DataItem("kolvo_b") %>' ID="txtkolvo_b" Runat =server />
									</ItemTemplate>

viewstate нужно использовать когда действительно нужно
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33663683
puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ющенко puhh по поводу dropdownlist - я имела в виду элементы, которые, как и грид, bind-ятся при первой загрузке.

..skip..

А сами dropdownlist они на форме лежат или встроены в датагрид у вас при режиме редактирования датагрида?


Я действительно с dropdownlist всех запутала, сорри.:)
Я просто читаю параллельно кучу всякой инфы, и часто сталкиваюсь с идеей, что EnabledViewstate нужно делать false, т.к. даже если мы во Viewstate сами специально ничего не запихиваем, то форма все равно сохраняет состояние.

Так что спрашивая про dropdownlist я имела в виду именно это...

Ющенко
пардон может за глупый вопрос вы условие не забываете в page_load ставить
Код: plaintext
If Me.IsPostBack = False
?


зы при последующих загрузках не нужно сохранять во вьюстейт ничего если стоит условие If Me.IsPostBack = False!

ззы тк при отправке клиентского запроса на сервер всегда вначале выполняется событие page_load а потом все остальное!



Сейчас во ViewState я храню DataTable для datagrid и DataTable для dropdownlist в datagrid.
Dropdownlist на форме только Bind-ю при первой загрузке.

Кстати, во viewstate я сохраняю в PreRender
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33663714
puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraНе редактируйте в гриде - и проблем не будет
Используйте отдельную форму для редактирования.

-- Tygra's --


Ну, наверно в другой раз так и поступлю.

Кстати, а можно ли вернуть измененное состояние заявки в главную форму из формы для редактирования без того, чтобы пользователю приходилось нажимать на кнопку "обновить"?
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33663729
puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, буду делать свой paging.

А на свой вопрос - как реализовывать вручную редактирование, сохранение и удаление в гриде, если не хранить DataTable во ViewState - я так и не нашла ответа :(
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33665686
Ющенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
puhh Ющенко puhh по поводу dropdownlist - я имела в виду элементы, которые, как и грид, bind-ятся при первой загрузке.

..skip..

А сами dropdownlist они на форме лежат или встроены в датагрид у вас при режиме редактирования датагрида?


Я действительно с dropdownlist всех запутала, сорри.:)
Я просто читаю параллельно кучу всякой инфы, и часто сталкиваюсь с идеей, что EnabledViewstate нужно делать false, т.к. даже если мы во Viewstate сами специально ничего не запихиваем, то форма все равно сохраняет состояние.

Так что спрашивая про dropdownlist я имела в виду именно это...

Ющенко
пардон может за глупый вопрос вы условие не забываете в page_load ставить
Код: plaintext
If Me.IsPostBack = False
?


зы при последующих загрузках не нужно сохранять во вьюстейт ничего если стоит условие If Me.IsPostBack = False!

ззы тк при отправке клиентского запроса на сервер всегда вначале выполняется событие page_load а потом все остальное!



Сейчас во ViewState я храню DataTable для datagrid и DataTable для dropdownlist в datagrid.
Dropdownlist на форме только Bind-ю при первой загрузке.



делается просто: читаете DataReader - м в свой dropdownlist из бд ( все это делаете это в page_load в If Me.IsPostBack = False) и никаких вьюстейтов не нужно!!!!!
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33665707
Ющенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
puhhА на свой вопрос - как реализовывать вручную редактирование, сохранение и удаление в гриде, если не хранить DataTable во ViewState - я так и не нашла ответа :(

элементарно! написать функцию, которая будет заполнять датасорс вашего грида данными из БД и реализовать стандартные методы датагрида (edit,cancel,update,delete) и внутри этих методов вызывать эту функцию!

читали http://aspnetmania.com/Articles/Category/2.html

puhhВ общем, буду делать свой paging.


пейджинг тоже сейчас пишу :)

зы А чем вам стандартный не нравится? хотите расширить функциональность или опять вьюстейт?
...
Рейтинг: 0 / 0
размер viewstate и datagrid
    #33666230
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ющенко
зы А чем вам стандартный не нравится? хотите расширить функциональность или опять вьюстейт?
стандартный пейджер при запросе тащит с сервера весь набор данных, а на клиенте его расфасовывает по страницам. На небольших наборах это не очень заметно,а вот если в наборе , например, несколько тысяч строк, то производительность существенно падает. На своем проекте после перехода на свой пейджинг я получил -80% по времени формирования страницы на 3000 строк.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / размер viewstate и datagrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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