View
@model IEnumerable<PurchaseModel>
@(Html.Kendo().Grid<PurchaseModel>(Model)
.Name("grid")
.Columns(columns =>
{
columns.Bound(x => x.flagPartId).Hidden();
columns.Bound(p => p.PartCode).Title("Part<font color='red'>*</font>").ClientTemplate("#if (PartCode == null) {# #=''# #} else {# #=PartCode# #}#").Width(150);
columns.Bound(p => p.PartName).Title("Part Name<font color='red'>*</font>").ClientTemplate("#if (PartName == null) {# #=''# #} else {# #=PartName# #}#").Width(150);
columns.Bound(p => p.PartCategoryID).Title("Part Category").Width(130).Filterable(ftb => ftb.Extra(false).Cell(cell => cell.Operator("contains")));
columns.Bound(p => p.Quantity).Title("Quantity<font color='red'>*</font>").Width(90).Filterable(ftb => ftb.Extra(false).Cell(cell => cell.Operator("contains")));
columns.Bound(p => p.Cost).Title("Cost per Unit<font color='red'>*</font>").Width(100).Filterable(ftb => ftb.Extra(false).Cell(cell => cell.Operator("contains")));
columns.ForeignKey(p => p.Condition, (System.Collections.IEnumerable)ViewData["ddlCondition"], "Value", "Value").Title("Condition <font color='red'>*</font>").Width(100).Filterable(ftb => ftb.Extra(false).Cell(cell => cell.Operator("contains")));
columns.Bound(p => p.PartSerialNo).Title("Serial Number").Width(120).Filterable(ftb => ftb.Extra(false).Cell(cell => cell.Operator("contains")));
columns.Bound(itm => itm.WStatus).Hidden(true);
columns.Template(@<text></text>).ClientTemplate(@"<input name='name#=renderNumberYes()#' type='radio' value='1' #= WStatus=='true' ? checked='checked':'' # />Yes
<input name='name#=renderNumberNo()#' type='radio' value='0' #= WStatus=='false' ? checked='checked':'' # />No
").HeaderTemplate("Warranty Provided").Width(150);
columns.Bound(p => p.Warranty).Title("Warranty Period").Width(150).Filterable(ftb => ftb.Extra(false).Cell(cell => cell.Operator("contains")));
columns.ForeignKey(p => p.WarrantyType, (System.Collections.IEnumerable)ViewData["ddlUnit"], "Value", "Text").Title("Units").Width(90).Filterable(ftb => ftb.Extra(false).Cell(cell => cell.Operator("contains")));
columns.Command(command => command.Destroy()).Width(90);
})
.ToolBar(toolBar =>
{
toolBar.Create();
toolBar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Events(even => even.Save("onSavePart").Edit("edit"))
.Pageable(pager => pager.PageSizes(new int[] { 10, 20, 50 }))
.Navigatable()
.Scrollable(s => s.Height("auto"))
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Events(events => events.Error("error_handler").RequestEnd("onRequestEnd"))
.Model(model =>
{
model.Id(p => p.PartDetailID);
model.Field(p => p.PartCode);
model.Field(p => p.WarrantyStatus).Editable(false);
model.Field(p => p.Condition).DefaultValue("NEW");
model.Field(p => p.Warranty);
model.Field(p => p.WarrantyType).DefaultValue("Day(s)");
})
.PageSize(10)
.Read(read => read.Action("EditingCustom_Read", "Purchase"))
.Create(create => create.Action("EditingCustom_Create", "Purchase"))
.Update(update => update.Action("EditingCustom_Update", "Purchase"))
.Destroy(destroy => destroy.Action("EditingCustom_Destroy", "Purchase"))
.Batch(true)
)
)
2 editor template
@model string
@(Html.Kendo().DropDownListFor(m => m)
.Name("PartCode")
.AutoBind(false)
.Filter("startswith")
.MinLength(1)
// .Suggest(true)
.DataTextField("PartCode")
.DataValueField("PartCode")
//.BindTo((System.Collections.IEnumerable)ViewData["ddlPart"])
.DataSource(dataSource =>
{
dataSource.Read(read => read.Action("BindPartCode", "Purchase"))
.ServerFiltering(false);
})
)
@Html.ValidationMessageFor(m => m)
===============================
@model string
@(Html.Kendo().DropDownListFor(m => m)
.Name("PartName")
.AutoBind(false)
.Filter("startswith")
.MinLength(1)
// .Suggest(true)
.DataTextField("PartName")
.DataValueField("PartName")
//.BindTo((System.Collections.IEnumerable)ViewData["ddlPart"])
.DataSource(dataSource =>
{
dataSource.Read(read => read.Action("BindPartCode", "Purchase"))
.ServerFiltering(false);
})
)
@Html.ValidationMessageFor(m => m)
Model Value declaration
[DisplayName("Part Code")]
[UIHint("PartCode")]
public string PartCode { get; set; }
[DisplayName("Part Name")]
[UIHint("PartName")]
public string PartName { get; set; }
Controller :
public ActionResult EditingCustom_Read([DataSourceRequest] DataSourceRequest request)
{
return Json(model.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditingCustom_Update([DataSourceRequest] DataSourceRequest request,
[Bind(Prefix = "models")]IEnumerable<PurchaseModel> model)
{
if (model != null && ModelState.IsValid)
{
foreach (var product in model)
{
//write code
}
}
return Json(TempPurchaseDynamicGrid.ToDataSourceResult(request, ModelState));
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditingCustom_Create([DataSourceRequest] DataSourceRequest request,
[Bind(Prefix = "models")]IEnumerable<PurchaseModel> model)
{
var results = new List<PurchaseModel>();
if (model != null && ModelState.IsValid)
{
//write code
}
return Json(TempPurchaseDynamicGrid.ToDataSourceResult(request, ModelState));
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditingCustom_Destroy([DataSourceRequest] DataSourceRequest request,
[Bind(Prefix = "models")]IEnumerable<PurchaseModel> model)
{
foreach (var product in model)
{
//write code
}
return Json(TempPurchaseDynamicGrid.ToDataSourceResult(request, ModelState));
}