When I edit or insert a new row, I don't get feedback when an update/insert fails. Any help would be appreciated.
My grid code looks like the following:
My controller looks like the following:
(TryUpdateModule method keeps throwing an "An item with the same key has already been added." exception, so that's why I'm not using it.)
James
My grid code looks like the following:
<
asp:Content
ContentPlaceHolderID
=
"MainContent"
runat
=
"server"
>
<
div
style
=
"margin: 10px 0px;"
>Article - Grid View</
div
>
<%= Html.Telerik().Grid<
Article
>()
.Name("Grid")
.DataKeys(keys => keys.Add(p => p.article_id))
.ToolBar(commands => commands.Insert())
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("_SelectAjaxEditing", "ArticleGridView")
.Insert("_InsertAjaxEditing", "ArticleGridView")
.Update("_SaveAjaxEditing", "ArticleGridView")
.Delete("_DeleteAjaxEditing", "ArticleGridView"))
.Columns(columns =>
{
columns.Bound(p => p.CategoryInitials).Title("Cat");
columns.Bound(p => p.description).Width(130);
columns.Bound(p => p.ColorName);
columns.Bound(p => p.Cash);
columns.Bound(p => p.registration_number).Title("Article #");
columns.Bound(p => p.route);
columns.Bound(p => p.BinName);
columns.Bound(p => p.DivisionName);
columns.Bound(p => p.DateLost);
columns.Command(commands =>
{
commands.Edit();
}).Title("Commands");
})
.Pageable(p => { p.PageSize(20); })
%>
<%= Html.Telerik().ScriptRegistrar() %>
</
asp:Content
>
My controller looks like the following:
[HttpPost]
[GridAction]
public
ActionResult _SaveAjaxEditing(
int
id, FormCollection collection)
{
var article = Article.Load(id);
if
(!
string
.IsNullOrEmpty(collection[
"description"
])) {
article.description = collection[
"description"
];
}
else
{
ModelState.AddModelError(
"description"
,
"description cannot be empty."
);
}
article.ColorName = collection[
"ColorName"
];
article.cash = collection[
"cash"
];
article.registration_number = collection[
"registration_number"
];
article.route = collection[
"route"
];
article.BinName = collection[
"BinName"
];
article.DivisionName = collection[
"DivisionName"
];
DateTime d;
if
(DateType.TryParse(collection[
"date_lost"
], d)) {
article.date_lost = collection[
"date_lost"
];
}
else
{
ModelState.AddModelError(
"date_lost"
,
"invalid date."
);
}
article.Save();
return
View(
new
GridModel(Article.FetchAll()));
}
(TryUpdateModule method keeps throwing an "An item with the same key has already been added." exception, so that's why I'm not using it.)
James