Пример #1
0
        public IHtmlContent Render(ITableConfig <T> config, int entityCount)
        {
            List <TableNode> nodes = new List <TableNode>();

            _config      = config;
            _entityCount = entityCount;
            _containerId = _tableState.ContainerId;

            TableNode table          = this.Table();
            TableNode innerContainer = this.Container(nodes, table);

            if (_tableState.ContainerId != null)
            {
                KeyValuePair <string, ColumnConfig> column = _config.Columns.FirstOrDefault(c =>
                                                                                            c.Value.SortState.HasValue && c.Value.SortState != SortState.None &&
                                                                                            c.Key != _tableState.SortProp);

                // Reset sort state for any column that was initially sorted.
                if (column.Value != null)
                {
                    column.Value.SortState = SortState.None;
                }
            }

            this.Caption(table);
            this.Header(table);
            this.Body(table);
            this.Footer(table);
            innerContainer.Element.InnerHtml.AppendHtml(string.Format(JsCode.Code, _containerId));
            this.FilteringLinkTemplate(innerContainer);

            return(_nodeParser.Parse(nodes));
        }
Пример #2
0
        public TableRendererTest()
        {
            ITableNodeParser nodeParser = Substitute.For <ITableNodeParser>();

            _tableState = new TableState
            {
                Filter   = new Dictionary <string, string>(), Page = 1, PageSize = 3,
                SortProp = "SortProp", AscSort = true
            };
            _tableConfig = Substitute.For <ITableConfig <TableEntity> >();
            _tableConfig.Columns.Returns(new Dictionary <string, ColumnConfig>());
            _tableConfig.Paging.Returns(new PagingConfig());
            _tableConfig.Footer.Returns(new FooterConfig());
            _tableConfig.Sorting.Returns(new SortingConfig());
            _tableConfig.Update.Returns(new UpdateConfig
            {
                Url   = "Url", BusyIndicatorId = "BusyId", Start = "start", Success = "success",
                Error = "error",
            });
            _tableConfig.Paging.Returns(new PagingConfig());
            nodeParser.Parse(Arg.Do <IEnumerable <TableNode> >(n => _nodes = n)).Returns(new HtmlString("Content"));
            _renderer = new TableRenderer <TableEntity>(_tableState, nodeParser);
        }