Массовое редактирование MVC - Примеры - PullRequest
3 голосов
/ 03 февраля 2009

Хорошо, значит, это альтернатива этому вопросу.

Я пытаюсь создать приложение MVC с использованием LinqToSql, которое позволяет выполнять массовое редактирование данных на одной странице.

Представьте простую таблицу Item с ItemId, ItemName, ItemPrice в качестве полей.

Существует множество примеров чрезвычайно простых приложений MVC, которые показывают вам список этих элементов с кнопкой редактирования рядом с каждым и кнопкой добавления внизу.

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

Я за одной страницей, содержащей названия товаров и цены в текстовых полях, которые можно отредактировать за один раз, а затем нажать единственную кнопку «Сохранить» для обновления данных.

Я видел несколько примеров, которые выполняют различные этапы этого, но еще не нашли тот, который реализует полное решение. В частности взаимодействие с Linq.

У меня есть несколько методов, которые я попробовал, но все они работают, но мое внутреннее чувство говорит мне, что мои методы "пахнут", и поэтому я хотел бы увидеть некоторые примеры того, как другие люди пытались это сделать.

Итак, проще говоря, мой вопрос: может кто-нибудь дать ссылки на некоторые примеры, пожалуйста?

Ответы [ 3 ]

3 голосов
/ 03 февраля 2009

У меня написано, как это сделать с MvcContrib FluentHtml. Стив Сандерсон написал о том, как это сделать без FluentHtml. Обе наши статьи имеют пример решения, которое вы можете скачать и посмотреть.

Что касается LinqToSql, я бы воспринимал любое взаимодействие между механизмом массового редактирования (контроллером и представлением) и LinqToSql как запах. То есть, насколько это возможно, ваш пользовательский интерфейс должен не знать о вашем механизме персистентности.

0 голосов
/ 03 февраля 2009

Какова ваша цель, вы пытаетесь передать серию информации одновременно? Или вы просто не хотите, чтобы ваша страница публиковалась каждый раз, когда вы что-то меняете. В любом случае jQuery - ваш лучший выбор. Если вы хотите сделать все за один проход, это будет сложно, если вы не используете элемент управления jQuery, который сделает это за вас. Есть такие замечательные, как Flexigrid .

0 голосов
/ 03 февраля 2009

Что бы я мог сделать, чтобы обойти это, так это использование jQuery для вызова jsonResult при переключении строк. Этот jsonResult вызовет код в модели, чтобы сохранить ItemId, ItemName, ItemPrice только для строки, из которой вы выключаете. Подробнее об использовании jsonResult с jQuery здесь: http://www.dev102.com/2008/08/19/jquery-and-the-aspnet-mvc-framework/

Другая вещь, которую вы могли бы сделать, это сделать привязку модели к списку Предметов, итерируя по списку, сохраняя каждый элемент - Фил Хаак имеет пример привязки списка здесь: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx При любом из этих методов вы хотите что-то сделать, чтобы показать, что строка изменилась, поэтому вы не обновляете каждое поле, если просто меняете несколько строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...