【发布时间】:2017-03-15 13:51:29
【问题描述】:
我有一个带有以下代码的全景视图(带有自定义数据绑定):
局部视图
@{
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 属性指定的主键字段。确保字段名称拼写正确。注意字符大小写。
【问题讨论】:
-
您确定模型包含 (StudentId) 属性并且您从 db 中成功检索到它吗?
-
来自 DevExpressForum :必填字段没有用“public”关键字标记或没有“get”/“set”访问器。有必要为使用的字段/属性实现“get”/“set”访问器;
-
感谢 Ahmed Ragheb,得到了解决方案“学生 ID”的格式不正确意味着它被错误地刻为“学生 ID”而不是“学生 ID”,感谢您的指导
-
我可以添加它作为其他人可以看到并帮助他们的答案
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 model-view-controller devexpress