在asp.net mvc页面中使用类似于此的telerik网格
<div>
@(Html.Kendo().Grid<Project.Models.Bench>
()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.name).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(p => p.seatsCount).Filterable(ftb => ftb.Cell(cell => cell.Operator("gte")));
columns.Bound(p => p.bookedSeats).Filterable(ftb => ftb.Cell(cell => cell.Operator("gte")));
})
.Pageable()
.Sortable()
.Scrollable()
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
//.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
//.ServerOperation(true)
.Read(read => read.Action("GetBenches", "home"))
)
)
</div>
这是我的替补课:
public class Bench
{
public int id { get; set; }
public string name { get; set; }
public bool bookable { get; set; }
public int zone { get; set; }
public int seatsCount { get; set; }
public string area { get; set; }
public int bookedSeats { get; set; }
public int freeSeats { get; set; }
}
和HomeController上的GetBenches方法
public async Task<ActionResult> GetBenches([DataSourceRequest] DataSourceRequest request)
{
BenchesService bService = new BenchesService();
List<Bench> obj = await bService.getBenches();
return Json(obj.Select(s => new Bench
{
id = s.id,
bookable = s.bookable,
name = s.name,
seatsCount = s.seatsCount,
zone = s.zone,
freeSeats = s.freeSeats,
area = s.area,
bookedSeats = s.bookedSeats
}).Distinct().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
我想知道我是否可以在其中一个列中添加.ClientTemplate,如果我可以在单元格中添加this type的控件(&#34; Benefit组件&#34;列中的那个)
答案 0 :(得分:1)
嗯,你可以从这样的事情开始:
@(Html.Kendo().Grid<Project.Models.Bench>
()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.name).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
columns.Bound(p => p.Variance).Title("Booked")
.ClientTemplate(Html.Kendo().Sparkline()
.Name("booked_#=name#"")
.Type(SparklineType.Column)
.Tooltip(tooltip => tooltip.Format("{0} booked"))
.DataSource(
.DataSource(ds => ds.Ajax()
.Read(read => read.Action("Read", "MyController", new { myId = Model.MyID })
)
.ToClientTemplate()
.ToHtmlString()
);
})
...