ich ein DevExpress Gitter in meiner Teilansicht habe,Readonly-Eigenschaft auf eine Säule von DevExpress Grid (MVC) Nur auf bearbeiten klicken
Jede Zeile des Gitters hat ein Hinzufügen, Aktualisieren und Löschen-Taste.
Wenn auf Update der bestimmten Zeile geklickt wird, erscheint ein Formular, das alle Spalten des Rasters enthält.
Jetzt möchte ich die Nur-Lese-Eigenschaft von einer der Spalten auf true setzen, die ich von column.ReadOnly = true;
tat
Aber was das bedeutet ist, setzt die Spalte immer auf Nur-Lesen heißt auch während auf Neu.
Wo ich diese readonly Eigenschaft nur während der Bearbeitung möchte, klicken Sie auf.
hier ist mein DevExpress Grid Code
@{
var grid = Html.DevExpress().GridView(settings =>
{
settings.Name = "GridViewDuration";
settings.CallbackRouteValues = new { Controller = "DurationMaster", Action = "GridViewDurationPartial" };
settings.SettingsEditing.AddNewRowRouteValues = new { Controller = "MyController", Action = "MyControllerAction1" };
settings.SettingsEditing.UpdateRowRouteValues = new { Controller = "MyController", Action = "MyControllerAction2" };
settings.SettingsEditing.DeleteRowRouteValues = new { Controller = "MyController", Action = "MyControllerAction3" };
settings.SettingsEditing.Mode = GridViewEditingMode.EditFormAndDisplayRow;
settings.SettingsBehavior.ConfirmDelete = true;
settings.CommandColumn.Visible = true;
settings.CommandColumn.ShowNewButton = true;
settings.CommandColumn.ShowDeleteButton = true;
settings.CommandColumn.ShowEditButton = true;
settings.KeyFieldName = "DurationId";
settings.SettingsPager.Visible = true;
settings.SettingsPager.PageSize = 20;
settings.Settings.ShowGroupPanel = true;
settings.Settings.ShowFilterRow = true;
settings.SettingsBehavior.AllowSelectByRowClick = false;
settings.Columns.Add(column =>
{
column.FieldName = "Column1";
column.ReadOnly = true;
column.Width = 20;
});
settings.Columns.Add(column =>
{
column.FieldName = "Column2";
column.Caption = "xyz";
column.ColumnType = MVCxGridViewColumnType.ComboBox;
column.Width = 250;
var comboBoxProperties = column.PropertiesEdit as ComboBoxProperties;
comboBoxProperties.DataSource = PMC.Web.Controllers.DurationMasterController.getSelectList("0", "MyAction4");
comboBoxProperties.TextField = "Text";
comboBoxProperties.ValueField = "Value";
comboBoxProperties.ValueType = typeof(int);
comboBoxProperties.ValidationSettings.RequiredField.IsRequired = true;
});
settings.InitNewRow = (sender, e) =>
{
e.NewValues["ColumnId"] = 0;
};
settings.Columns.Add("ColumnName");
settings.Columns.Add("Description");
//settings.Columns.Add("DisplayName");
settings.Columns.Add(column =>
{
column.Caption = "FromDate";
column.FieldName = "FromDate";
column.ColumnType = MVCxGridViewColumnType.DateEdit;
column.ReadOnly = true;
var DateEditProperties = column.PropertiesEdit as DateEditProperties;
column.CellStyle.Wrap = DefaultBoolean.False;
});
settings.Columns.Add(column =>
{
column.Caption = "ToDate";
column.FieldName = "ToDate";
column.ColumnType = MVCxGridViewColumnType.DateEdit;
var DateEditProperties = column.PropertiesEdit as DateEditProperties;
column.CellStyle.Wrap = DefaultBoolean.False;
});
});
if (ViewData["EditError"] != null)
{
grid.SetEditErrorText((string)ViewData["EditError"]);
}
}
@grid.Bind(Model).GetHtml()
Dies ist, wie mein Raster auf Anfangslast aussieht.
und wenn auf Update geklickt für die Bearbeitung
Ich habe versucht, dass, nur dass die gesamte Datecontrol zu finden der Spalte disaap Ohren, anstatt es nur lesbar zu machen @peters –
Es verschwand, weil dies nur ein Beispiel ist. Sie müssen eine spezifische Devexpress MVC-Steuerdefinition innerhalb der if-Anweisung hinzufügen. Das wird HTML-Steuerelementausgabe in ViewContext.Writer schreiben. Etwas wie folgt aus: 'Code ViewContext.Writer.Write ( Html.DevExpress() DateEdit (settingsDateEdit => { settingsDateEdit.Name = "VonDatum"; settingsDateEdit.Width = Unit.Percentage (100). ; settingsDateEdit.ReadOnly =! E.Grid.IsNewRowEditing; }). Bind (fromDate) .GetHtml() ); ' – PeterS
Bitte versuchen Sie dies und lassen Sie mich wissen, ob es für Sie funktioniert. Wenn etwas nicht klar ist, lass es mich auch wissen :) – PeterS