Hi there,
I am using a trial version to make sure it covers our project requirements. Will upgrade to full if this works.
I'm trying to display a dropdown for related data inline inside a grid. I've followed this link as closely as possible https://demos.telerik.com/aspnet-mvc/grid/editing-custom
But the ClientTemplate is not rendering the dropdown.
View:
@(Html.Kendo().Grid<GrindrodDataCapture.Models.RailConsignmentDetail>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.LoadedWeight);
columns.Bound(c => c.GrossWeight);
columns.Bound(c => c.TareWeight);
columns.Bound(c => c.Tarps);
columns.Bound(c => c.Status).ClientTemplate("=Status.Name#");
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(180);
})
.ToolBar(toolBar =>
{
toolBar.Create();
toolBar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable()
.Sortable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("error_handler"))
.Model(model =>
{
model.Id(rd => rd.ID);
model.Field(rd => rd.ID).Editable(false);
model.Field(rd => rd.Status).DefaultValue(ViewData["defaultStatus"] as GrindrodDataCapture.Models.ConsignmentDetailStatus);
})
.PageSize(20)
.Read(read => read.Action("RailConsignmentDetails_Read", "RailDetailGrid", new { headerID = Request.Params["ConsignmentHeaderID"] }))
.Create(create => create.Action("RailConsignmentDetails_Create", "RailDetailGrid"))
.Update(update => update.Action("RailConsignmentDetails_Update", "RailDetailGrid"))
.Destroy(destroy => destroy.Action("RailConsignmentDetails_Destroy", "RailDetailGrid"))
)
)
Controller section:
public class RailDetailGridController : Controller
{
private GrindrodContext db = new GrindrodContext();
public ActionResult Manage(int ConsignmentHeaderID)
{
PopulateWagons();
return View();
}
private void PopulateWagons()
{
ViewData["statuses"] = db.ConsignmentDetailStatuses;
ViewData["defaultStatus"] = db.ConsignmentDetailStatuses.First();
}
public ActionResult RailConsignmentDetails_Read([DataSourceRequest]DataSourceRequest request, int headerID)
{
IQueryable<RailConsignmentDetail> railconsignmentdetails = (from rd in db.RailConsignmentDetails
where rd.RailConsignment.ID == headerID
select rd).Include("Status");
DataSourceResult result = railconsignmentdetails.ToDataSourceResult(request, railConsignmentDetail => new {
ID = railConsignmentDetail.ID,
LoadedWeight = railConsignmentDetail.LoadedWeight,
GrossWeight = railConsignmentDetail.GrossWeight,
TareWeight = railConsignmentDetail.TareWeight,
Tarps = railConsignmentDetail.Tarps,
Status = new ConsignmentDetailStatus ()
{
ID = railConsignmentDetail.Status.ID,
Code = railConsignmentDetail.Status.Code,
Name = railConsignmentDetail.Status.Name,
NameLocal = railConsignmentDetail.Status.NameLocal,
Description = railConsignmentDetail.Status.Description,
IsOcean = railConsignmentDetail.Status.IsOcean,
IsRail = railConsignmentDetail.Status.IsRail,
IsRoad = railConsignmentDetail.Status.IsRoad
}
});
return Json(result, JsonRequestBehavior.AllowGet);
}