![]() |
|
Модераторы: gambit |
![]()
|
|
| Glen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.1.2010 Репутация: нет Всего: нет |
1. Я в ASP.NET новичок. Сейчас мне встретилась написанная кем-то форма на ASP.NET WebForms c использованием DevExpress, которую надо доработать; и тут возникли вопросы относящиеся к page-based State Management (ViewState и проч); и мне самому трудно разобраться с кодом который кто-то написал до меня. Замечу что хотя у меня используется DevExpress, скорее всего поднимаемый вопрос – общий для всех случаев, когда используются partial postbacks. 2. Итак, на форме (.ascx-файл, то есть файл User Control-а) есть Кнопка (класс ASPxButton из DevExpress): <dx:ASPxButton ID="btnPrintCompanies" runat="server" AutoPostBack="false" ClientSideEvents-Click="function(s,e) {callbackPrint.PerformCallback();}" > </dx:ASPxButton> Упомянутый объект 'callbackPrint' помещен на этой же странице вот так: <dx:ASPxPopupControl ID="PopupCompaniesPrint" ClientInstanceName="popupCompaniesPrint" runat="server" > <ContentCollection> <dx:PopupControlContentControl> <dx:ASPxCallbackPanel ID="CompaniesPrint" runat="server" ClientInstanceName="callbackPrint" OnCallback="CallbackPrint_Callback"> ..... А уже сам обработчик CallbackPrint_Callback выглядит (в .cs-файле) так: protected void CallbackPrint_Callback(object sender, CallbackEventArgsBase e) { ... } 3. Как я понимаю, такой способ вызова называется 'partial postback', верно? Он позволяет обновлять страницу НЕ перерисовывая её всю. При этом в Page_Load страницы я увижу IsPostBack==true; но это не 'полный' PostBack, а partial, так? 4. Как я понимаю, одним из побочных эффектов использования такого 'partial postback' будет то что в моём обработчике CallbackPrint_Callback я не смогу пользоваться механизмами page State Management (ViewState, ControlState). Когда я, находясь в этом обработчике, добавляю нечто в ViewState, в следующий раз я этого во ViewState не нахожу (хотя ViewState разрешён - как на уровне этого User Control-а так и на уровне его страницы). То же происходит и с ControlState. При нажатии на мою Кнопку метод LoadControlState вызывается, а вот метод SaveControlState – нет. Вопрос: я прав в причине того, почему page State Management не работает? 5. Раз он не работает, возникает вопрос: что можно использовать вместо него? Мне необходима какая-то замена: программе нужно, когда первый раз нажимают на Кнопку, создать некий программный объект, связанный с именно этим экземпляром страницы. Сам объект я могу сохранить как Session[MyUniqueKey]. Однако эту самую строку MyUniqueKey мне надо прихранить на самой странице, чтобы он был доступен когда Кнопку нажмут второй раз. Я рассчитывал это сделать через ViewState, но вижу что он не работает. Что можно использовать взамен? |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |