Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > LinkButton, EnableViewState


Автор: TheAviator 6.1.2006, 05:33
Ну например имеем страницу положим с новостями.
Новости пролистываются путел нажатия на кнопочки LinkButton (ну 1, 2,3 .. страницы)
А ведь LinkButton не ссылка и поисковик по ней не переходит, да?
Есть ли решение этой проблемы?
...
Можно конечно сделать обчные ссылки, обрабытывать в Page_Load QueryString, но это гораздо извращенней и все равно возникнет другая проблема: а если на странице есть элементы, для которых важно сохранять состояние (EnableViewState), например в DropDownList запомнить выделенный элемент... то по нажатию на обычныю ссылку данные формы, в которой информация по ViewState содержится не отправится и его состояние не сохранится.

Вот такая вот диллема. Может кто знает из нее выход? Или я просто чего-то не понимаю. Поясните, пожалуйста.

Автор: JaguarSmith 6.1.2006, 14:14
ИМХО раскрутка всё-таки важнее! А то, что ты хотел хранить в ViewState можно хранить в переменных сеанса (session)например. smile

Автор: TheAviator 6.1.2006, 14:56
Цитата(JaguarSmith @ 6.1.2006, 14:14)
ИМХО раскрутка всё-таки важнее! А то, что ты хотел хранить в ViewState можно хранить в переменных сеанса (session)например.  smile

В session-то можно, но свойство enableViewState автоматически работает для элементов (т.е система сама заботится. чтобы элементы восстанавливали выбранное состояния), а для Session прийдется писать дополнительный код который будет это делать

Автор: JaguarSmith 6.1.2006, 22:28
Хммм.... А что ты творишь если не секрет?
Для большинства обычных сайтов это не особо критично...
Я вообще довольно редко пользуюсь теми вещами которые используют viewstate и по возможности стараюсь его выключать - ибо во первых вес страницы иногда неоправданно возрастает особенно ежели там datagrid какойнить(а человек в центре глухой степи в роуминге пытается скачать это дело по GPRS =), а во вторых оно совсем безглючно работает тока в ИЕ, а у нас чем моложы юзверь тем более активно он юзает всякие моззилы, оперы и т.д. и т.п... smile

Автор: Exception 6.1.2006, 23:02
JaguarSmith, а где это ViewState не работает?
Добавлено @ 23:02
Стоп. На клиентской стороне LinkButton ведь становится ссылкой!

Автор: JaguarSmith 6.1.2006, 23:39
В плане неработает - я ашипся!
Но в плане дополнительного траффика - то нет... smile
Цитата
Стоп. На клиентской стороне LinkButton ведь становится ссылкой!

Ссылкой то он становится но ссылкой типа - <a id="cl1" href="javascript:__doPostBack('cl1','')">кнопочка</a>

Автор: TheAviator 6.1.2006, 23:49
Цитата(Exception @ 6.1.2006, 23:02)
JaguarSmith, а где это ViewState не работает?
Добавлено @ 23:02
Стоп. На клиентской стороне LinkButton ведь становится ссылкой!

smile
Он становится пустой ссылкой, по которой вывзвается код ЖАВАскрипт, который отправляет данные методом пост со всей страницы (поэтомц EnableViewState работает с ним). Но поисковик по такой ссылке не перейдет. А если сделать обычнную, то 1) прийдется писать вручную обработчик для QueryString 2) Елементы перестанут сохранять свое сотояние и снова же рийдется мутить какой-то изврат.

А вообще я материал по этой теме уже нашел и сейчас исследую.

Автор: JaguarSmith 6.1.2006, 23:54
Дык это - делись! smile

Автор: mr.DUDA 9.1.2006, 09:00
Гы, а что если взять допустим, и собрать все возможные линки с данной страницы на другие, и запихнуть их в виде <a href="..." в невидимый фрэйм? smile

Автор: Exception 9.1.2006, 14:53
Извращенец вы, mr.DUDA )

Автор: TheAviator 9.1.2006, 20:10
Цитата(JaguarSmith @ 6.1.2006, 23:54)
Дык это - делись!  smile

Тут:
[url=http://www.aspnetmania.com/Articles/Article/45.html]http://www.aspnetmania.com/Articles/Article/45.
html[/url]
Я вообще-то как раз Пэйджер и делал, так что все 3 статьи цикла по теме оказались.

Автор: mr.DUDA 11.1.2006, 21:26
Цитата(Exception @ 9.1.2006, 13:53 Найти цитируемый пост)
Извращенец вы, mr.DUDA )

smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)