Лучший способ хранения данных на стороне клиента - ASP.Net + JQuery - PullRequest
7 голосов
/ 29 ноября 2010

Я пишу форму администратора для некоторых довольно сложных объектов.Это стандартный повторитель, который отображает некоторую «базовую» информацию (имя, идентификатор и т. Д.) Для каждой строки объекта.

Нажатие «Изменить» для строки расширяет ее (используя JQuery), чтобы раскрыть весь ужас всехсвязанные редактируемые объекты.Одним из них является список документов, связанных с каждой строкой, и он должен быть редактируемым JQuery, чтобы пользователь мог нажать «редактировать», чтобы открыть графический интерфейс полной строки, затем снять / установить флажки, чтобы де / связать документы, а затем нажать «Сохранить».'чтобы сохранить все.

В настоящее время я использую вложенные повторители для хранения изначально скрытых полей - повторитель создает скрытое поле формы, содержащее разделенный запятыми список идентификаторов для связанных документов.Когда дело доходит до заполнения интерфейса редактирования, я делаю операцию разделения на строке с разделителями и устанавливаю / снимаю флажки по мере необходимости.

Это доказывает кошмар с точки зрения удобства обслуживания и в моих расстроенных блужданиях по сети впоиск решения, которое я заметил, JQuery имеет некоторые функции, действующие в качестве клиентской базы данных.Есть ли у кого-нибудь такой опыт, и если да, то порекомендуете ли вы это?Мой пользовательский JS для анализа csv-строк и динамического построения графического интерфейса начинает меня раздражать.

Заранее спасибо,

5arx

1 Ответ

5 голосов
/ 29 ноября 2010

Вы попадаете в область очень продвинутого поведения на стороне клиента и сталкиваетесь с явлением, которое, как мне кажется, поражает многих разработчиков веб-форм.Попытка соединить две парадигмы друг с другом.

Не вдаваясь в подробности, я бы советовал придерживаться подхода «Чистый AJAX» для решения проблем вашего клиента.Основная схема такова:

  • Использование вызовов AJAX для получения JSON-представления вашей структуры данных
  • Использование клиентской структуры шаблонов / привязки для создания пользовательского интерфейса и привязки объектов JSON к этим элементам.Здесь есть несколько хороших вариантов.
  • Выполните действия в пользовательском интерфейсе, чтобы вызывать методы веб-службы для обработки операций с данными.

Вы можете реализовать JSON-контент так, как считаете нужным, но в ASP.Net у вас есть два варианта:

  1. WCF
  2. Методы страницы

Вероятно, потребуется некоторая реорганизация с вашей стороны, но если вы хотите добиться действительно хорошего поведения на стороне клиента, вам придется прикусить пулю и просто сделать это.

...