Kendo ui 肯杜伊调度器

Kendo ui 肯杜伊调度器,kendo-ui,kendo-asp.net-mvc,kendo-scheduler,kendo-ui-mvc,Kendo Ui,Kendo Asp.net Mvc,Kendo Scheduler,Kendo Ui Mvc,我正在尝试实现scheduler控件,以显示每日材料使用量的实时计算(在每周视图中) 我无法在单元格中显示使用情况数据,尽管我已设法将材料显示在左侧。我不知道是否有人能帮助我或给我一些提示,说明我做错了什么。以下是我目前的代码: 我可以确定数据正在返回到视图中,但视图没有显示使用数据,使用数据只是与一周中特定日期的材质对应的数值。我还附上了一个屏幕截图,它看起来像: 控制器读取数据的方法: public JsonResult Read([DataSourceRequest] DataSource

我正在尝试实现scheduler控件,以显示每日材料使用量的实时计算(在每周视图中)

我无法在单元格中显示使用情况数据,尽管我已设法将材料显示在左侧。我不知道是否有人能帮助我或给我一些提示,说明我做错了什么。以下是我目前的代码:

我可以确定数据正在返回到视图中,但视图没有显示使用数据,使用数据只是与一周中特定日期的材质对应的数值。我还附上了一个屏幕截图,它看起来像:

控制器读取数据的方法:

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;

    }
}
publicJSONResult读取([DataSourceRequest]DataSourceRequest请求)
{
尝试
{
var usageList=新列表();
var imports=_importRespository.GetImports();
foreach(var USAGEREPORTSTORED进口过程)
{
var usageViewModel=new ReportUsageViewModel();
usageViewModel.MaterialID=UsageReportStoredProcess.MaterialID;
usageViewModel.Start=usageReportStoredProcedure.ScanDate;
usageViewModel.End=usageReportStoredProcedure.ScanDate;
usageViewModel.DailyUsage=UsageReportStoredProcess.UsageQuantity;
usageViewModel.Title=UsageReportStoredProcess.UsageQuantity.ToString();
添加(usageViewModel);
}
返回Json(usageList.ToDataSourceResult(request));
}
捕获(异常exc)
{
ErrorHelper.WriteToEventLog(exc);
返回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")
    )
    )

@(Html.Kendo().Scheduler())
.Name(“StockViewer”)
.时区(“欧洲/伦敦”)
.Resources(resource=>resource.Add(m=>m.MaterialID)
.标题(“材料”)
.名称(“材料”)
.DataTextField(“名称”)
.DataValueField(“实质性”)
.BindTo(模范艺术家))
马约蒂克先生(270)
.MinorTickCount(1)
.StartTime(DateTime.Now.Date.AddHours(8))
.EndTime(DateTime.Now.Date.AddHours(17))
.AllDaySlot(错误)
.Date(DateTime.Now.Date)
.可编辑(假)
.Views(x=>x.WeekView(v=>
{
v、 页脚(假);
v、 选中(真);
v、 DateHeaderTemplate(“#=kendo.toString(日期,'ddd dd/M')#”);
}))
.Group(Group=>Group.Resources(“Materials”).Orientation(SchedulerGroupOrientation.Vertical))
.DataSource(d=>d
.Model(m=>{
m、 Id(f=>f.MaterialID);
m、 字段(f=>f.Title).DefaultValue(“无标题”);
})
.Read(“Read”,“ReportUsage”)
)
)
更新:这是实现isScheduleEvent的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:isSchedulereEvent
{
公共int MaterialID{get;set;}
公共字符串MaterialName{get;set;}
公共int?日常用法{get;set;}
公共列表艺术家{get;set;}
公共字符串说明{get;set;}
public System.DateTime End{get;set;}
公共bool IsAllDay{get;set;}
公共字符串重复出现异常{get;set;}
公共字符串递归规则{get;set;}
public System.DateTime Start{get;set;}
公共字符串标题{get;set;}
}

问题在于这两个方面:

.StartTime(DateTime.Now.Date.AddHours(8)) 
.EndTime(DateTime.Now.Date.AddHours(17)) 

数据在那里,但这两条线隐藏了它。记录数据的时间超出了8到17的时间范围,因此我删除了这两行,然后将主刻度设置为1440,这是24小时内刻度的总数,这帮助我隐藏了时间列,因为我不需要它。

您的
ReportUsageViewModel
是否实现了
IsSchedulereEvent
?@mmillican是的,它以我刚才在编辑部分中显示的方式实现了。请看一下。对我来说,一切都很好。也许可以尝试从
@Html.Kendo().Scheduler
中取出选项,看看是否存在冲突?我没有使用所有这些选项。@mmillican好的,伙计,谢谢你。我会尝试,当然,一旦我找到答案,我会尽快发布我的答案。很好,你找到了问题!你现在应该写下答案并标记为正确。这样它就不会再以“未答复”的形式出现了!:)