2009-02-03 3 views
3

Итак, это является альтернативой this question.MVC Bulk Edit - Примеры

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

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

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

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

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

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

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

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

ответ

0

Что бы я мог сделать, чтобы обойти это, используйте jQuery для вызова jsonResult при переключении строк. Этот jsonResult будет вызывать код в модели, чтобы сохранить ItemId, ItemName, ItemPrice только для строки, которую вы выключаете. Подробнее об общем использовании jsonResult w/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 С помощью любого метода вы захотите сделать что-то, чтобы означать, что строка изменилась, поэтому вы не обновляете каждое поле, если вы просто меняете несколько строк.

0

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

3

У меня есть written about how to do this с MvcContrib's FluentHtml. Стив Сандерсон имеет written about how to do it без FluentHtml. В обеих наших статьях есть образец решения, которое вы можете скачать и посмотреть.

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

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