Используйте сетку MVCContrib для редактирования

StackOverflow https://stackoverflow.com/questions/827395

  •  05-07-2019
  •  | 
  •  

Вопрос

Я только начал использовать сетку MVCContrib в тестовом проекте. Мне трудно найти информацию о том, как использовать его для редактирования / обновления / удаления.

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

Это было полезно?

Решение

Похоже, что MVCContrib - это простой способ создать таблицу HTML из коллекции объектов модели. Похоже, что он не имеет возможности поместить строку в edit / update / delete & Quot; mode & Quot; похож на GridView WebForms.

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

Другие советы

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

public static IGridColumn<T> Action<T>( this IGridColumn<T> column, Func<T, string> viewAction, Func<T, string> editAction, Func<T,bool> editMode )
{
   column.CustomItemRenderer = ( context, item ) => context.Writer.Write( "<td>" + ( editMode( item ) ? editAction( item ) : viewAction( item ) ) + "</td>" );
   return column;
}

Это позволяет указать способ визуализации столбца в режиме просмотра и в режиме редактирования. Режим определяется с помощью третьего действия, которое должно иметь значение true для строки, которую вы хотите редактировать.

Использование этого в представлении выглядело бы примерно так:

<%= Html.Grid( Model.Items ).Columns( column => {
     column.For( x => x.Name ).Action(
        item => Html.ActionLink( item.Name, "SomeAction" ), 
        item => Html.TextBox( "Item.Name", item.Name ),
        item => ( Model.SelectedItem == item ) );
    } )
    .Empty("No items found.")
%>

Вы можете использовать один и тот же шаблон для отображения ссылок действий (редактировать, применять, отменять и т. д.) в ячейке. Если вы хотите редактировать несколько строк одновременно, убедитесь, что имена полей уникальны.

scroll top