Вы можете добавить режим редактирования, настроив способ визуализации ячейки. Я использую следующий метод расширения:
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.")
%>
Вы можете использовать тот же шаблон для визуализации ссылок действий (редактировать, применять, отменять и т. Д.) В ячейке.
Если вы хотите редактировать несколько строк одновременно, убедитесь, что имена полей уникальны.