2014-02-12 97 views
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

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; } 
    } 

enter image description here

+0

您的'ReportUsageViewModel'是否實現'ISchedulerEvent'? –

+0

@mmillican是的,它以我剛剛在編輯部分顯示的方式進行。請看一看。 –

+0

對我來說,一切都很好。也許嘗試從'@ Html.Kendo()。Scheduler '中取出選項並查看是否有衝突?我沒有使用所有這些選項。 –

回答

2

的問題是在這兩條線:

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

的數據在那裏,但是這兩條線被隱藏了。數據在8至17時間範圍之外的時間被記錄下來,所以我刪除了這兩行,然後將主要報價設置爲1440,這是24小時內的報價總數,這幫助我隱藏了時間列,因爲我不需要它..