0

일일 기준으로 소재 사용량을 실시간 계산 (일주일 단위로보기)하는 스케줄러 컨트롤을 구현하려고합니다.KendoUI 스케줄러

머티리얼 데이터를 셀에 표시 할 수 없지만 왼쪽에 머티리얼이 표시되어야합니다. 어떤 사람이 내가 뭘 잘못하고 있는지에 대한 어떤 힌트를 줄 수 있는지 궁금합니다. 지금까지 내 코드는 다음과 같습니다.

데이터가 뷰로 돌아가고 있지만 뷰에는 사용중인 데이터가 표시되지 않습니다.이 데이터는 단순히 특정 요일에있는 재료에 해당하는 숫자 값입니다.

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

enter image description here

+0

당신의'ReportUsageViewModel'은'ISchedulerEvent'를 구현합니까? –

+0

@ mmillican 예 그렇습니다. 제가 편집 부분에 방금 표시 한 것과 같습니다. 한번 봐주세요. –

+0

나에게는 모든 것이 정상적으로 보인다. 아마도'@ Html.Kendo(). Scheduler '에서 옵션을 꺼내서 충돌이 있는지 살펴볼 수 있을까요? 나는 모든 옵션을 사용하지 않았습니다. –

답변

2

문제

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; } 
    } 
다음 두 줄이었다

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

데이터가 있었다 그러나이 두 줄을 숨기고 있었다. 데이터가 8-17 시간 범위를 벗어난 시간대에 기록되기 때문에이 두 줄을 제거한 다음 주요 틱을 1440으로 설정합니다.이 틱은 24 시간 내에 틱의 총 수이므로 시간 열을 숨기는 데 도움이되었습니다. 그것을 필요로하지 않았다. ..