2

ここhttps://www.devexpress.com/Support/Center/Example/Details/E5116に従って、ASP.NET MVC で特定の例を適用しました。以下は私のグリッドビュー設定のサンプル部分コードです:

settings.SettingsEditing.Mode = GridViewEditingMode.Batch;
settings.SettingsEditing.BatchEditSettings.EditMode = GridViewBatchEditMode.Row;
settings.CellEditorInitialize = (s, e) =>
{
    ASPxGridView grid = s as ASPxGridView;
    ASPxEdit editor = (ASPxEdit)e.Editor;
    if (e.Column.FieldName == "columnName1" || e.Column.FieldName == "columnName2")
    {
        e.Editor.ReadOnly = !grid.IsNewRowEditing;
    }
};

既存の行データの更新中に両方のセルを編集できないようになりました。これは完璧に思えます。

しかし、新しいボタンを使用して新しい行を作成しているときに、両方の列を編集することはできません。

注:-次の場合に機能します:

 settings.SettingsEditing.Mode = GridViewEditingMode.Inline;

ただし、編集モードがBatchの場合は機能しません。

4

1 に答える 1

1

最後に、DevExpress サポートの助けを借りてこれを達成しました。

次のような部分ビューでのグリッド設定:

@Html.DevExpress().GridView(settings=> {
settings.Name = "gridViewPartial";
settings.CallbackRouteValues = new { Controller = "Home", Action = "gridViewPartial" };
settings.SettingsEditing.BatchUpdateRouteValues = new { Controller = "Admin", Action = "gridViewBatchUpdate" };

settings.KeyFieldName = "Id";

settings.SettingsEditing.Mode = GridViewEditingMode.Batch;
settings.SettingsEditing.BatchEditSettings.EditMode = GridViewBatchEditMode.Cell;


//to handle edit events on client side
**settings.ClientSideEvents.BatchEditStartEditing = "OnBatchStartEdit";**

settings.CommandColumn.Visible = true;
settings.CommandColumn.ShowDeleteButton = true;
settings.CommandColumn.ShowNewButtonInHeader = true;


settings.Columns.Add(column =>
{
    column.FieldName = "Id";
    column.Caption = "ID";
    column.ColumnType = MVCxGridViewColumnType.SpinEdit;

});
settings.Columns.Add(column =>
{
    column.FieldName = "Name";
    column.Caption = "Name";

});

}).Bind(Model).GetHtml()

部分ビューを参照しているグリッド通常ページ:

//script to handle edit event
function OnBatchStartEdit(s, e) {
    if ((e.focusedColumn.fieldName == "Id") && (e.visibleIndex > -1)) //cancel example
        e.cancel = true;;
}

詳細については、https://www.devexpress.com/Support/Center/Question/Details/T386483を参照してください。

于 2016-06-08T08:57:33.967 に答える