protected virtual IGridRowBuilder CreateDetailRowBuilder(GridRenderingData renderingData, GridItem item) { return(new GridDetailRowBuilder { Colspan = (renderingData.Colspan - 1) - item.GroupLevel, DataItem = item.DataItem, Template = renderingData.DetailTemplate, Expanded = item.Expanded, IsMasterAlternate = item is GridDetailViewItem && ((item as GridDetailViewItem).Parent.State & GridItemStates.Alternating) == GridItemStates.Alternating, Html = item.DetailRowHtml, HtmlAttributes = item.DetailRowHtmlAttributes }); }
protected virtual IGridEditFormBuilder CreateEditFormBuilder(GridRenderingData renderingData, GridItem item) { return(CreateEditFormBuilder(renderingData, item, (command) => command.CreateEditButtons(renderingData.UrlBuilder, renderingData.HtmlHelper), renderingData.UrlBuilder.UpdateUrl )); }
private IGridRowBuilder CreateInLineRowBuilder(GridRenderingData renderingData, GridItem item, Func <object, string> action, Func <IGridColumn, IGridHtmlHelper, IGridDataCellBuilder> cellBuilder) { var tableBuilder = tableBuilderFactory.CreateTableBuilder(renderingData.Columns.Select(c => new GridColData { Width = c.Width, Hidden = c.Hidden })); var cellBuilders = renderingData.Columns.Select(column => cellBuilder(column, renderingData.HtmlHelper)); var formHtmlAttributes = CreateFormAttributes(renderingData.FormId, action(item.DataItem)); //formHtmlAttributes.Merge(renderingData.EditFormHtmlAttributes); return(new GridInLineEditRowBuilder(tableBuilder, new GridFormBuilder(formHtmlAttributes), renderingData.Colspan, item.DataItem, cellBuilders)); }
protected virtual IGridRowBuilder CreateDataRowBuilder(GridRenderingData renderingData, GridItem item) { if (renderingData.RowTemplate != null) { return(new GridTemplateRowBuilder(td => renderingData.RowTemplate(item.DataItem, td), renderingData.Colspan)); } return(new GridDataRowBuilder(item.DataItem, renderingData.Columns.Select(column => cellBuilderFactory.CreateDisplayCellBuilder(column, renderingData.HtmlHelper)))); }
protected virtual IGridRowBuilder CreatePopUpInsertRowBuilder(GridRenderingData renderingData, GridItem item) { return(new GridPopUpInsertRowBuilder(CreateInsertFormBuilder(renderingData, item), renderingData.PopUpContainer)); }
private IGridEditFormBuilder CreateEditFormBuilder(GridRenderingData renderingData, GridItem item, Func <IGridActionCommand, IEnumerable <IGridButtonBuilder> > buttons, Func <object, string> action) { var commands = renderingData.Columns.OfType <IGridActionColumn>().SelectMany(column => column.Commands); var editCommand = commands.OfType <GridEditActionCommand>().FirstOrDefault() ?? new GridEditActionCommand(); var buttonBuilders = buttons(editCommand).Select(builder => { Func <IHtmlNode> result = () => builder.Create(item.DataItem); return(result); }); var formHtmlAttributes = CreateFormAttributes(renderingData.FormId, action(item.DataItem)); //formHtmlAttributes.Merge(renderingData.EditFormHtmlAttributes); return(new GridEditFormBuilder(new GridFormBuilder(formHtmlAttributes), () => renderingData.HtmlHelper.EditorForModel(item.DataItem, renderingData.EditTemplateName, renderingData.Columns.OfType <IGridForeignKeyColumn>().Select(c => c.SerializeSelectList), renderingData.AdditionalViewData ), buttonBuilders)); }
protected virtual IGridRowBuilder CreateInLineInsertRowBuilder(GridRenderingData renderingData, GridItem item) { return(CreateInLineRowBuilder(renderingData, item, renderingData.UrlBuilder.InsertUrl, cellBuilderFactory.CreateInsertCellBuilder)); }
protected virtual IGridRowBuilder CreateInsertRowBuilder(GridRenderingData renderingData, GridItem item) { switch (renderingData.EditMode) { //TODO: Implement InForm editing //case GridEditMode.InForm: // return CreateInFormInsertRowBuilder(renderingData, item); case GridEditMode.PopUp: return(CreatePopUpInsertRowBuilder(renderingData, item)); default: return(CreateInLineInsertRowBuilder(renderingData, item)); } }
protected virtual IGridRowBuilder CreateGroupFooterRowBuilder(GridRenderingData renderingData, GridItem item) { var functionsGroup = item.DataItem as AggregateFunctionsGroup; var itemAggregateResult = functionsGroup.GetAggregateResults(renderingData.Aggregates); return(new GridGroupFooterRowBuilder(renderingData.Columns.Select(column => cellBuilderFactory.CreateGroupFooterCellBuilder(column, itemAggregateResult)))); }
protected virtual IGridRowBuilder CreateInFormInsertRowBuilder(GridRenderingData renderingData, GridItem item) { return(new GridInFormEditRowBuilder(CreateInsertFormBuilder(renderingData, item), renderingData.Colspan)); }
protected virtual IGridRowBuilder CreateGroupRowBuilder(GridRenderingData renderingData, GridItem item) { var groupKey = ((IGroup)item.DataItem).Key; var colspan = renderingData.Colspan - item.GroupLevel; var member = renderingData.GroupMembers.ElementAtOrDefault(item.GroupLevel); var column = renderingData.Columns.OfType <IGridBoundColumn>().FirstOrDefault(c => c.Member == member); var format = column != null && column.Format.HasValue() ? column.Format : "{0}"; var template = new HtmlTemplate <GridGroupAggregateResult> { InlineTemplate = (result) => "{0}: {1}".FormatWith(result.Title, format.FormatWith(ExtractForeignKeyText(column, result.Key))) }; var title = member.AsTitle(); if (column != null) { title = column.Title.HasValue() ? column.Title : column.Member.AsTitle(); if (column.GroupHeaderTemplate.HasValue()) { template = column.GroupHeaderTemplate; } } var functionsGroup = item.DataItem as AggregateFunctionsGroup; var itemAggregateResult = functionsGroup.GetAggregateResults(renderingData.Aggregates); var aggregateResult = new GridGroupAggregateResult(title, groupKey, itemAggregateResult); return(new GridGroupRowBuilder((container) => template.Apply(aggregateResult, container), colspan)); }
protected virtual IGridRowBuilder CreateEmptyRowBuilder(GridRenderingData renderingData, GridItem item) { return(new GridEmptyRowBuilder(renderingData.Colspan, renderingData.NoRecordsTemplate)); }
public override bool ShouldDecorate(GridItem gridItem) { return(HasDetailView && gridItem.Type != GridItemType.EmptyRow && gridItem.Type != GridItemType.GroupRow); }
public override bool ShouldDecorate(GridItem gridItem) { return(gridItem.Type != GridItemType.EmptyRow); }
private void AsGroupRow(GridItem item) { item.Type = GridItemType.GroupRow; }