0

У меня есть мнение patial с следующим кодом (с обязательными пользовательскими данными):Получение исключения StartEdit на DevExpress сетке

Частичного видом

@{ 

Html.EnableClientValidation(); 

Html.EnableUnobtrusiveJavaScript(); 

    var grid = Html.DevExpress().GridView(settings => { 
     settings.Name = "GridView1"; 
     settings.KeyFieldName = "StudentId"; 
     settings.CallbackRouteValues = new { Controller = "CustomBinding", Action = "MyGridViewPartial" }; 

     settings.CustomActionRouteValues = new { Controller = "Editing", Action = "ChangeEditModePartial" }; 

     settings.SettingsEditing.AddNewRowRouteValues = new { Controller = "CustomBinding", Action = "GridView1PartialAddNew" }; 

     settings.SettingsEditing.UpdateRowRouteValues = new { Controller = "CustomBinding", Action = "GridView1PartialUpdate" }; 

     settings.SettingsEditing.DeleteRowRouteValues = new { Controller = "CustomBinding", Action = "GridView1PartialDelete" }; 
     settings.SettingsEditing.Mode = GridViewEditingMode.EditFormAndDisplayRow; 
     settings.SettingsBehavior.ConfirmDelete = true; 
     settings.SettingsPopup.EditForm.Width = 600; 

     settings.CommandColumn.Visible = true; 
     settings.CommandColumn.ShowNewButton = true; 
     settings.CommandColumn.ShowDeleteButton = true; 
     settings.CommandColumn.ShowEditButton = true; 


     settings.CustomBindingRouteValuesCollection.Add(
     GridViewOperationType.Paging, 
     new { Controller = "MyController", Action = "MyPagingAction" } 
    ); 

     settings.CustomBindingRouteValuesCollection.Add(
     GridViewOperationType.Sorting, 
     new { Controller = "MyController", Action = "MySortingAction" } 
    ); 
     settings.SettingsAdaptivity.AdaptivityMode = GridViewAdaptivityMode.Off; 
     settings.SettingsAdaptivity.AdaptiveColumnPosition = GridViewAdaptiveColumnPosition.Left; 
     settings.SettingsAdaptivity.AdaptiveDetailColumnCount = 1; 
     settings.SettingsAdaptivity.AllowOnlyOneAdaptiveDetailExpanded = false; 
     settings.SettingsAdaptivity.HideDataCellsAtWindowInnerWidth = 0; 


     settings.Columns.Add("StudentId"); 
     settings.Columns.Add("StudentName"); 
     settings.Columns.Add("StudentAge"); 
     settings.Columns.Add("StudentGrade"); 
     settings.Columns.Add("StudentAddress"); 

     settings.PreRender = (sender, e) => 
     { 

      ((MVCxGridView)sender).StartEdit(0);/**//This is the Exception line** 
     }; 
     settings.CellEditorInitialize = (s, e) => 
     { 
      ASPxEdit editor = (ASPxEdit)e.Editor; 
      editor.ValidationSettings.Display = Display.Dynamic; 

     }; 
      }); 
     if (ViewData["EditError"] != null){ 
     grid.SetEditErrorText((string)ViewData["EditError"]); 
    } 
} 
@grid.BindToCustomData(Model).GetHtml()///Custom binding 

Просьба предложить решение:

Исключения: Поле первичного ключа, указанное с помощью свойства KeyFieldName, не найдено в базовом источнике данных. Убедитесь, что имя поля написано правильно. Обратите внимание на случай символа.

+0

Вы уверены, что модель содержит свойство (StudentId), и вы извлечь его из db успешно? –

+0

Да Ахмед Рагеб –

+0

от DevExpressForum: обязательное поле не отмечено «общедоступным» ключевым словом или не имеет «get»/«set» accessors. Необходимо использовать «get»/«set» accessors для используемых полей/свойств; –

ответ

-1

Вы уверены, что модель содержит свойство (StudentId), и вы извлечь его из БД успешно, а также он общедоступен геттер и сеттер

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