Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> State Management в ASP.NET: partial postbacks 
:(
    Опции темы
Glen
Дата 24.9.2011, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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, но вижу что он не работает.

Что можно использовать взамен?


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.1619 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.