2010-08-06 3 views
0

Поскольку событие itemcommand запускается после большинства, если не всех событий/событий инициализации/загрузки страницы/управления. каков наилучший способ сохранить данные переменной сеанса, которые были изменены в элементе itemcomment (например, добавление элементов), чтобы страница могла реагировать на команду item, используя измененный сеанс?Лучший способ сохранить переменные сеанса в элементе списка listview ASP.NET

+0

Только решение, которое я вижу (и работает), предназначено для обработки любых функций на prerender страницы. Появляется, чтобы работать, но нечетный itemcommand не срабатывает, как это делают другие контрольные события. – Skowronek

+1

Можете ли вы привести пример того, что вы пытаетесь сделать и что не работает для вас? Как правило, вы должны иметь возможность изменять сеанс, как видите, в обработчике itemcommand, но поскольку большая часть событий страницы уже запущена, ваша страница не будет отражать ни одно из этих изменений до следующего запроса (который обычно не является что ты хочешь). –

+0

Проблема заключалась в том, что мне нужно было установить счетчик для обновления на странице после нажатия кнопки в списке. Я смог выполнить, бросив логику обновления в событие prerender страницы. – Skowronek

ответ

0

Вы могли поймать постбэк раньше жизненного цикла страницы:

// id of the control 
    string id = Request.Form["__EVENTTARGET"]; 

    if (!string.IsNullOrEmpty(id) && id.Contains("myControlId")) 
    { 
     string argument = Request.Form["__EVENTARGUMENT"]; 
     ... 
    } 

но это ни очень элегантно и не безопасно. Я буду следовать предложению Skowronek: поставить больше логики на PreRender.

Смежные вопросы