private static void ConfigureCrudButtons(Grid grid, GridMetamodel gridModel) { if (gridModel.DetailsLink.IsEnabled) { grid.AddColumn(new Column("DetailsLink") .SetLabel(gridModel.DetailsLink.Text) .SetWidth(70).SetFixedWidth(true) .SetSortable(false) .SetSearch(false) .SetCustomFormatter("buildDetailsLink")); } if (gridModel.EditLink.IsEnabled) { grid.AddColumn(new Column("EditLink") .SetLabel(gridModel.EditLink.Text) .SetWidth(50).SetFixedWidth(true) .SetSortable(false) .SetSearch(false) .SetCustomFormatter("buildEditLink")); } if (gridModel.DeleteLink.IsEnabled) { grid.AddColumn(new Column("DeleteLink") .SetLabel(gridModel.DeleteLink.Text) .SetWidth(50).SetFixedWidth(true) .SetSortable(false) .SetSearch(false) .SetCustomFormatter("buildDeleteLink")); } }
public Grid Configure(GridMetamodel gridModel, string gridDataAction, string gridId) { var grid = this.html.Grid(gridId); ConfigureGrid(grid, gridModel, gridDataAction); this.ConfigureModelColumns(grid, gridModel); ConfigureCrudButtons(grid, gridModel); return(grid); }
public static DataRequest <TGridModel> BuildGridDataRequest <TGridModel>( GridSettings gridSettings, GridMetamodel <TGridModel> gridMetamodel) where TGridModel : IGridModelBase { var sortSettings = PrepareSortSettings(gridSettings, gridMetamodel.DefaultSortSettings); var searchSettings = FillSearchFilter(gridMetamodel, gridSettings); var request = new DataRequest <TGridModel>(gridSettings.PageIndex, gridSettings.PageSize, sortSettings, searchSettings); return(request); }
private void ConfigureModelColumns(Grid grid, GridMetamodel gridModel) { foreach (var metamodel in gridModel.Columns) { var metamodelType = metamodel.GetType(); var configurator = this.GetConfigurator(metamodelType); var column = configurator.Render(metamodel); grid.AddColumn(column); } }
public static MvcHtmlString JqGrid(this HtmlHelper html, GridMetamodel gridModel, string gridDataAction) { var gridId = "mainGrid"; var configurator = new JqGridConfigurator(html); var grid = configurator.Configure(gridModel, gridDataAction, gridId); var gridMarkup = JqGridConfigurationUpdater.FixGridConfiguration( grid.ToString(), gridId, UiTexts.GridButton_Clear, UiTexts.GridSearch_DropDown_All); return(MvcHtmlString.Create(gridMarkup)); }
// TODO: [SMELL!!] this should be handled by IoC container not controller itself! private void InitCachedConfiguration() { var type = this.GetType(); if (!configuredControllers.Contains(type)) { gridMetamodel = this.GetGridMetamodel(); typeToJqGridObjectMapper = TypeToJqGridObjectMapperGenerator.GetMapper <TGridModel>(idPropertyName, gridMetamodel.ViewModelPropertiesNames); configuredControllers.Add(type); } }
private static FilterConfiguration <TGridModel> FillSearchFilter <TGridModel>( GridMetamodel <TGridModel> gridMetamodel, GridSettings gridSettings) where TGridModel : IGridModelBase { var conditions = new List <FilterCondition>(); if (gridSettings.IsSearch) { foreach (var rule in gridSettings.Where.rules) { var propertiesColumns = gridMetamodel.Columns.OfType <PropertyColumnMetamodel>(); var column = propertiesColumns.Single(c => c.Name == rule.field); var condition = new FilterCondition(column.Name, column.Filter.Operator, column.PropertyType, rule.data); conditions.Add(condition); } } return(new FilterConfiguration <TGridModel>(conditions)); }
private static void ConfigureGrid(Grid grid, GridMetamodel gridModel, string gridDataAction) { grid // basic: .SetCaption(gridModel.Caption) .SetUrl(gridDataAction) .SetHideGrid(false) .SetAutoWidth(true) // pagination: .SetPager("pager") .SetTopPager(true) .SetRowList(new[] { 10, 20, 50, 100 }) .SetViewRecords(true) // sorting and filtering: .SetShowAllSortIcons(true) .SetSearchToolbar(true) .SetSearchOnEnter(true) .SetSearchClearButton(true) // events: .OnGridComplete("gridComplete()") .OnLoadError("showGridError(xhr.responseText);"); }