hi guys,
Server side validations it will support or not ?
I currently have a working grid with inline editing. I need validation that needs to be done on the server side because duplicate records checking..
Please check the code and let me know any issues in this code? or send me working sample code....
View code...
@(Html.Kendo().Grid<PeopleTray.Models.Admin.EmploymentTypeModel>()
.Name("gridEmployementType")
.Columns(columns =>
{
columns.Command(command => { command.Edit().Text("Edit").HtmlAttributes(new { title = "Edit" }); command.Destroy().Text("Delete").HtmlAttributes(new { title = "Delete" }); }).Width(160);
columns.Bound(p => p.Name);
columns.Bound(p => p.Description);
columns.Bound(w => w.Id).Hidden();
})
.ToolBar(toolbar => toolbar.Create().Text("Add").HtmlAttributes(new { title="Add" }))
.Editable(editable => editable.Mode(GridEditMode.InLine).CreateAt(GridInsertRowPosition.Bottom))
.Pageable(pager => pager.Refresh(true))
.Sortable(sortable => sortable.AllowUnsort(true))
.Events(e => e.Edit("onEdit"))
.Events(e => e.Save("onSave"))
.HtmlAttributes(new { style = "width: 70%;" })
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Events(events => events.Error("error_handler"))
.PageSize(5)
.Model(model =>
{
model.Id(ds => ds.Id);
})
.Create(create => create.Action("EmployementType_Insert", "CorporateAdmin"))
.Read(read => read.Action("EmployementTypes_Read", "CorporateAdmin"))
.Update(update => update.Action("EmployementType_Update", "CorporateAdmin"))
.Destroy(destroy => destroy.Action("EmployementType_Delete", "CorporateAdmin"))
)
)
function error_handler(e) {
if (e.errors) {
var message = "Errors:\n";
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
alert(message);
}
}
--------------------------
Controller code.....
public ActionResult EmployementType_Insert([DataSourceRequest]DataSourceRequest request, EmploymentTypeModel model)
{
var employementtypes = AdminService.GetEmployementTypesModel();
for (int r = 0; r < employementtypes.Count; r++)
{
if (employementtypes[r].Name.ToLower() == model.Name.Trim().ToLower())
{
ModelState.AddModelError("grid_error", "The employement type already exists. Please modify or delete your entry.");
return Json(new[] { model }.ToDataSourceResult(request, ModelState));
}
}
if (model.Name != null && ModelState.IsValid)
{
AdminService.InsertEmploymentType(model);
}
return Json(new[] { model }.ToDataSourceResult(request, null), JsonRequestBehavior.AllowGet);
}
Server side validations it will support or not ?
I currently have a working grid with inline editing. I need validation that needs to be done on the server side because duplicate records checking..
Please check the code and let me know any issues in this code? or send me working sample code....
View code...
@(Html.Kendo().Grid<PeopleTray.Models.Admin.EmploymentTypeModel>()
.Name("gridEmployementType")
.Columns(columns =>
{
columns.Command(command => { command.Edit().Text("Edit").HtmlAttributes(new { title = "Edit" }); command.Destroy().Text("Delete").HtmlAttributes(new { title = "Delete" }); }).Width(160);
columns.Bound(p => p.Name);
columns.Bound(p => p.Description);
columns.Bound(w => w.Id).Hidden();
})
.ToolBar(toolbar => toolbar.Create().Text("Add").HtmlAttributes(new { title="Add" }))
.Editable(editable => editable.Mode(GridEditMode.InLine).CreateAt(GridInsertRowPosition.Bottom))
.Pageable(pager => pager.Refresh(true))
.Sortable(sortable => sortable.AllowUnsort(true))
.Events(e => e.Edit("onEdit"))
.Events(e => e.Save("onSave"))
.HtmlAttributes(new { style = "width: 70%;" })
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Events(events => events.Error("error_handler"))
.PageSize(5)
.Model(model =>
{
model.Id(ds => ds.Id);
})
.Create(create => create.Action("EmployementType_Insert", "CorporateAdmin"))
.Read(read => read.Action("EmployementTypes_Read", "CorporateAdmin"))
.Update(update => update.Action("EmployementType_Update", "CorporateAdmin"))
.Destroy(destroy => destroy.Action("EmployementType_Delete", "CorporateAdmin"))
)
)
function error_handler(e) {
if (e.errors) {
var message = "Errors:\n";
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
alert(message);
}
}
--------------------------
Controller code.....
public ActionResult EmployementType_Insert([DataSourceRequest]DataSourceRequest request, EmploymentTypeModel model)
{
var employementtypes = AdminService.GetEmployementTypesModel();
for (int r = 0; r < employementtypes.Count; r++)
{
if (employementtypes[r].Name.ToLower() == model.Name.Trim().ToLower())
{
ModelState.AddModelError("grid_error", "The employement type already exists. Please modify or delete your entry.");
return Json(new[] { model }.ToDataSourceResult(request, ModelState));
}
}
if (model.Name != null && ModelState.IsValid)
{
AdminService.InsertEmploymentType(model);
}
return Json(new[] { model }.ToDataSourceResult(request, null), JsonRequestBehavior.AllowGet);
}