or
@(Html.Kendo().Grid(Model.TimesheetDetails)
.Name("TimesheetDetailGrid")
.TableHtmlAttributes(new { style = "padding:0; margin:0;font-size:smaller;color:green" })
.Columns(columns =>
{
columns.Bound(x => x.Id).Hidden();
columns.Bound(x => x.TimesheetId).Hidden();
columns.Bound(x => x.CompanyId).Hidden();
columns.ForeignKey(p => p.JobCodeId, (System.Collections.IEnumerable)ViewData["JobCodes"], "Id", "JobCodeName")
.Title("Job Code")
.Width(150)
.HeaderHtmlAttributes(new { @class = "GridHeader" });
columns.Bound(x => x.Description)
.Width(250)
.Title("Description")
.HeaderHtmlAttributes(new { @class = "GridHeader" });
columns.Bound(x => x.WorkDate)
.Width(65)
.Title("Date")
.HeaderHtmlAttributes(new { @class = "GridHeader" });
columns.Bound(x => x.StartTime)
.Width(55)
.Title("Start")
.Format("{0:hh:mm}")
.HeaderHtmlAttributes(new { @class = "GridHeader" })
.HtmlAttributes(new { @class = "StartTime" });
columns.Bound(x => x.EndTime)
.Width(55)
.Title("End")
.Format("{0:hh:mm}")
.HeaderHtmlAttributes(new { @class = "GridHeader" })
.HtmlAttributes(new { @class = "EndTime" })
.ClientFooterTemplate("Hours: ");
columns.Bound(x => x.Duration)
.Width(55)
.Title("Hours")
.HeaderHtmlAttributes(new { @class = "GridHeader" })
.ClientFooterTemplate("#=kendo.toString(sum, '0.00') #");
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(122);
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable(x => x
.PageSizes(true)
.PageSizes(new int[] { 2, 3, 4, 5, 10, 25, 100 }))
.Sortable()
.Events(events => events.Edit("onEdit"))
.Events(events => events.Save("onSave"))
//.Events(events => events.DataBound("gridDataBound"))
.DataSource(ds => ds
.Ajax()
.ServerOperation(true)
.PageSize(10)
.Model(m =>
{
m.Id(vm => vm.Id);
m.Field(vm => vm.Id).DefaultValue(Guid.NewGuid()).Editable(false);
m.Field(vm => vm.TimesheetId).DefaultValue(Model.Id).Editable(false);
m.Field(vm => vm.CompanyId).DefaultValue(Model.CompanyId).Editable(false);
m.Field(vm => vm.JobCodeId).DefaultValue(Guid.Empty);
m.Field(vm => vm.Duration);
})
.Aggregates(aggregates =>
{
aggregates.Add(p => p.Duration).Sum();
})
.Read(read => read.Action("TimesheetDetail_Json", "Timesheet", new { Id = Model.Id }))
.Create(update => update.Action("AddDetailRow_Json", "Timesheet"))
.Update(update => update.Action("EditDetailRow_Json", "Timesheet"))
.Destroy(update => update.Action("DeleteDetailRow_Json", "Timesheet"))
)
)
function
onSave(e) {
var
dataSource =
this
.dataSource;
e.model.one(
"change"
,
function
() {
dataSource.one(
"change"
,
function
() {
//alert(dataSource.aggregates().Amount.sum);
});
dataSource.fetch();
});
e.model.set(
"Duration"
, $(
"#Duration"
).val());
}