【发布时间】:2014-02-12 15:27:49
【问题描述】:
我正在尝试实施调度程序控制,以显示每日材料使用情况的实时计算(按周查看)。
尽管我设法让材料显示在左侧,但我无法在单元格中显示使用数据。我想知道是否有人可以帮助我或给我一些关于我做错了什么的提示。到目前为止,这是我的代码:
我可以确定数据正在返回到视图,但视图没有显示使用数据,这些数据只是对应于一周中特定日期的材料的数值。我还附上了它的外观截图:
读取数据的Controller方法:
public JsonResult Read([DataSourceRequest] DataSourceRequest request)
{
try
{
var usageList = new List<ReportUsageViewModel>();
var imports = _importRespository.GetImports();
foreach (var usageReportStoredProcedure in imports)
{
var usageViewModel = new ReportUsageViewModel();
usageViewModel.MaterialID = usageReportStoredProcedure.MaterialID;
usageViewModel.Start = usageReportStoredProcedure.ScanDate;
usageViewModel.End = usageReportStoredProcedure.ScanDate;
usageViewModel.DailyUsage = usageReportStoredProcedure.UsageQuantity;
usageViewModel.Title = usageReportStoredProcedure.UsageQuantity.ToString();
usageList.Add(usageViewModel);
}
return Json(usageList.ToDataSourceResult(request));
}
catch (Exception exc)
{
ErrorHelper.WriteToEventLog(exc);
return null;
}
}
实际控制
<div id="StockViewer">
@(Html.Kendo().Scheduler<WorcesterMarble.ViewModels.ReportUsageViewModel>()
.Name("StockViewer")
.Timezone("Europe/London")
.Resources(resource => resource.Add(m => m.MaterialID)
.Title("Materials")
.Name("Materials")
.DataTextField("Name")
.DataValueField("MaterialID")
.BindTo(Model.MaertiaList))
.MajorTick(270)
.MinorTickCount(1)
.StartTime(DateTime.Now.Date.AddHours(8))
.EndTime(DateTime.Now.Date.AddHours(17))
.AllDaySlot(false)
.Date(DateTime.Now.Date)
.Editable(false)
.Views(x => x.WeekView(v =>
{
v.Footer(false);
v.Selected(true);
v.DateHeaderTemplate("<span class='k-link k-nav-day'>#=kendo.toString(date, 'ddd dd/M')#</span>");
}))
.Group(group => group.Resources("Materials").Orientation(SchedulerGroupOrientation.Vertical))
.DataSource(d => d
.Model(m => {
m.Id(f => f.MaterialID);
m.Field(f => f.Title).DefaultValue("No title");
})
.Read("Read", "ReportUsage")
)
)
更新:这是实现 ISchedulerEvent 的 ViewModel
public class ReportUsageViewModel : ISchedulerEvent
{
public int MaterialID { get; set; }
public string MaterialName { get; set; }
public int? DailyUsage { get; set; }
public List<MaterialViewModel> MaertiaList { get; set; }
public string Description { get; set; }
public System.DateTime End { get; set; }
public bool IsAllDay { get; set; }
public string RecurrenceException { get; set; }
public string RecurrenceRule { get; set; }
public System.DateTime Start { get; set; }
public string Title { get; set; }
}
【问题讨论】:
-
你的
ReportUsageViewModel实现ISchedulerEvent了吗? -
@mmillican 是的,它就像我刚刚在编辑部分中展示的那样。请看一看。
-
对我来说,一切正常。也许尝试从
@Html.Kendo().Scheduler<T>中取出选项并查看是否存在冲突?我没有使用所有这些选项。 -
@mmillican 好的,伙计,谢谢。我会尝试,当然会在找到答案后立即发布。
-
很好,你找到了问题!您现在应该写下答案并将其标记为正确。这样它就不会再显示为“未答复”了! :)
标签: kendo-ui kendo-asp.net-mvc kendo-scheduler kendo-ui-mvc