2010-02-09 1 views
3

Я динамически связываю таблицы и подтаблицы, используя вложенные списки. На стороне клиента у меня есть часть jQuery, которая переключает видимость TRs по таблицам, чтобы предоставить возможность расширения группы/контракта.Сохранять изменения класса клиентской стороны между обратными передачами ASP.Net?

На обратной стороне я, очевидно, теряю свои изменения класса, которые я применил через jQuery. Мне интересно, какой лучший подход к поддержанию этих изменений класса клиентской стороны? Я рассмотрел возможность создания скрытого контроля ввода в таблице для хранения индексов видимых TR в момент их расширения. Цель состоит в том, чтобы затем искать индексы во время обратной передачи/перезаписи и добавлять видимые классы к каждому соответствующему элементу.

Есть ли лучший подход или какой-либо собственный способ передачи имени/класса на стороне клиента во время обратной передачи?

+0

Как насчет того, чтобы вызов AJAX возвращался на ваш сервер каждый раз, когда вы скрываете/раскрываете раздел и сохраняете список того, что показывается, а что нет, тогда вам нужно только предоставить эти данные до вашего вида на обновление и дон не нужно поддерживать его или отправлять обратно. – Lazarus

+0

@ Lazarus. Это хорошая идея, но, похоже, столько же усилий, сколько хранение состояния клиентской стороны в скрытых полях ввода. Я надеялся на более элегантное/надежное решение для этого, что означало, что мне не нужно было отображать изменения на следующей странице. Спасибо хоть. –

+0

Я думаю, вы обнаружите, что практически каждое веб-приложение на базе портала будет использовать AJAX-вызовы для такого рода вещей, я, конечно же, удивлен, услышав, что такое решение считается неэлегантным, а не надежным. В конце концов, это просто HTTP, и jQuery упрощает его. – Lazarus

ответ

5

Есть несколько способов сделать это:

  • Как вы предлагаете, скрытый контроль, который содержит детали об изменениях для просмотра состояния, на стороне сервера использует эту информацию, чтобы сделать правильно в следующий раз, или javascript просматривает эту информацию при загрузке страницы и настраивает страницу. Если вы хотите, чтобы данные сохранялись в сеансах (входы в журнал), вам необходимо, чтобы серверная информация хранила информацию в БД и отображала ее на каждом доступе к странице.
  • Если вы хотите, чтобы данные сохранялись, иногда лучше иметь вызов ajax для хранения информации на сервере при внесении изменений. Это имеет то преимущество, что вы не вынуждаете пользователя отправлять форму, чтобы изменения сохранялись. Если страница, на которой вы работаете, часто получает (или, возможно, даже не имеет других элементов формы), это, вероятно, лучший вариант.
  • Старая школа: хранить информацию в cookie. Бла, никто больше этого не делает.
Смежные вопросы