如何在Scheduler Kendo MVC中使用dataSource添加资源?

时间:2017-10-01 21:36:53

标签: asp.net-mvc telerik

在此demo中,会议室资源随BindTo一起添加,但我想使用dataSource添加资源。

我将BindTo改为

 .DataSource(d => d.Read("GetRooms", "Scheduler"));

我的问题是,我现在还没有在控制器中编写GetRooms方法,也就像bindTo一样。我是使用剑道的新手,我之前没有看到过这个,所以任何建议都会很棒。谢谢。

1 个答案:

答案 0 :(得分:1)

从我在原始示例中看到的情况来看,Read()方法接受相应操作方法的参数&用于设置数据源的控制器名称,Read中的SchedulerController方法如下:

public virtual JsonResult Read([DataSourceRequest] DataSourceRequest request)
{
    return Json(taskService.GetAll().ToDataSourceResult(request));
}

您要做的是使用ToDataSourceResult方法将JSON数据返回给调度程序(填充调度程序的数据),因此您可以以类似的方式在GetRooms内编写SchedulerController方法(假设Rooms是一个带无参数构造函数的POCO类:

public partial class SchedulerController : Controller
{
    // other stuff

    public virtual JsonResult GetRooms([DataSourceRequest] DataSourceRequest request)
    {
        // do something with Rooms data
        var rooms = new Rooms(); // this declaration can be moved to `SchedulerController` constructor like `taskService` does
        var roomList = rooms.GetAll();
        DataSourceResult result = roomList.ToDataSourceResult(request);

        // return JSON result
        return Json(result, JsonRequestBehavior.AllowGet);
    }

    // other stuff

}

然后您可以使用DataSource,如下所示:

@(Html.Kendo().Scheduler<Kendo.Mvc.Examples.Models.Scheduler.TaskViewModel>()
      // other stuff
      .DataSource(d => d.Read("GetRooms", "Scheduler"))
      // other stuff
)

参考:

KendoUI: Understanding ToDataSourceResult