or

<%=ViewHelper.CreateGridFromType<OverviewTopFiveModel>(this) .Name("DailyTopFive") .DataBinding(dataBinding => dataBinding.Ajax() .Select("AjaxDailyTopFive", "Home")) .Filterable() .Sortable() .ScrollBars(false)%>public static GridBuilder<TModel> CreateGridFromType<TModel>(ViewPage page) where TModel : class { // create the custom grid var component = (page.ViewContext.HttpContext.Items[StyleSheetRegistrar.Key] as StyleSheetRegistrar) ?? new StyleSheetRegistrar(new WebAssetCollection(WebAssetDefaultSettings.StyleSheetFilesPath), page.ViewContext, DI.Current.Resolve<IWebAssetCollectionResolver>()); var scriptWrapper = DI.Current.Resolve<ScriptWrapperBase>(); var registrar2 = (page.ViewContext.HttpContext.Items[ScriptRegistrar.Key] as ScriptRegistrar) ?? new ScriptRegistrar(new WebAssetCollection(WebAssetDefaultSettings.ScriptFilesPath), new List<IScriptableComponent>(), page.ViewContext, DI.Current.Resolve<IWebAssetCollectionResolver>(), scriptWrapper); var test = new CustomViewComponentFactory(page.Html, DI.Current.Resolve<IClientSideObjectWriterFactory>(), ComponentBuilderBase<StyleSheetRegistrar, StyleSheetRegistrarBuilder>.Create(component), ComponentBuilderBase<ScriptRegistrar, ScriptRegistrarBuilder>.Create(registrar2)); var cGrid = test.Grid<TModel>(); var grid = new GridBuilder<TModel>(cGrid); // create the columns grid.Columns(CreateGridColumnsFromType(grid)); // hook internal events grid.ClientEvents(e => e.OnLoad("onInternalGridLoad")); grid.ClientEvents(e => e.OnDataBinding("onInternalGridDataBinding")); grid.ClientEvents(e => e.OnDataBound("onInternalGridDataBound")); grid.ClientEvents(e => e.OnDetailViewExpand("onInternalGridDetailViewExpand")); grid.ClientEvents(e => e.OnDetailViewCollapse("onInternalGridDetailViewCollapse")); grid.ClientEvents(e => e.OnRowDataBound("onInternalRowDataBound")); grid.ClientEvents(e => e.OnCommand("onInternalGridCommand")); return grid; }TimeZoneCollection timeZones = new TimeZoneCollection(this.AppSettings); timeZones.Load(); List<TimeZoneListModel> models = Mapper.Map<TimeZoneCollection, List<TimeZoneListModel>>(timeZones); IQueryable<TimeZoneListModel> dataSource = models.AsQueryable(); return Json(dataSource.ToDataSourceResult(request));
@(Html.Kendo().Grid<Shmiffer.Web.Areas.Admin.Models.TimeZoneListModel>() .Name("grdTimeZones") .Groupable(grouping => grouping .Enabled(true)) .DataSource(dataSource => dataSource .Ajax() .Read(read => read.Action("Index", "TimeZones")) .Sort(sort => sort.Add(tz => tz.TimeZoneId).Ascending()) .PageSize(10) .Group(group => group.Add(tz => tz.SupportsDaylightSavingTime))) .Filterable(filtering => filtering .Enabled(true)) .Pageable(paging => paging .Enabled(true) .Info(true) .PageSizes(false) .Refresh(true)) .Scrollable(scrolling => scrolling .Enabled(false) .Height(200) .Virtual(true)) .Sortable(sorting => sorting .Enabled(true) .AllowUnsort(false) .SortMode(GridSortMode.SingleColumn)) )
