在此demo中,会议室资源随BindTo一起添加,但我想使用dataSource添加资源。
我将BindTo改为
.DataSource(d => d.Read("GetRooms", "Scheduler"));
我的问题是,我现在还没有在控制器中编写GetRooms方法,也就像bindTo一样。我是使用剑道的新手,我之前没有看到过这个,所以任何建议都会很棒。谢谢。
答案 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
)
参考: