Example #1
0
        private void RenderTabs(
            GridRendererContext rendererContext,
            PermissionContext permissionContext,
            IMasterTableDataSet masterTableDataSet,
            ITableDataAdapter selectedDataAdapter)
        {
            foreach (var dataAdapter in masterTableDataSet.DetailDataAdapters)
            {
                RenderTab(rendererContext, masterTableDataSet, selectedDataAdapter, dataAdapter);
            }

            if (rendererContext.ShowExplicitDetailTables())
            {
                return;
            }

            foreach (var collectionProperty in rendererContext.GridItemCollectionProperties)
            {
                if (permissionContext.HasCurrentUserReadPermission(collectionProperty.Name))
                {
                    var dataAdapter = _tableDataAdapterProvider.CreateCollectionTableDataAdapter(rendererContext.ActualItem, collectionProperty);
                    RenderTab(rendererContext, masterTableDataSet, selectedDataAdapter, dataAdapter);
                }
            }
        }
        public void AddActualColumnValue(PermissionContext permissionContext)
        {
            if (!permissionContext.HasCurrentUserReadPermission(ActualColumnName))
            {
                RendererTreeBuilder.AddContent("*****");
                return;
            }

            if (specialColumnValues.TryGetValue(ActualColumnName, out var rendererFragmentAdapter))
            {
                var fragment = rendererFragmentAdapter.GetColumnFragment(ActualItem);
                RendererTreeBuilder.AddContent(fragment);
                return;
            }

            var valueFormatter = valueFormatters[ActualColumnName];
            var inputForColumnValueFormatter = valueFormatter.FormatterType == ValueFormatterType.SingleProperty
                ? PropertyValueAccessor.GetValue(ActualItem, ActualColumnName)
                : ActualItem;

            RendererTreeBuilder.AddContent(new MarkupString(
                                               valueFormatter.FormatValue(inputForColumnValueFormatter))
                                           );
        }