/// <summary> /// 重建参数视图 /// </summary> private void RecreateTableView(AccordionControlElementCollection elements , ReportTableView parentTableView , IEnumerable <ReportTableController> tables) { if (parentTableView != null) { parentTableView.ChildTableViews = new List <Views.ReportTableView>(); } foreach (var reportDataTable in tables) { ExtendAddonPublic.GetAddonExtendProperties(reportDataTable); var elementTableView = new AccordionControlElement(); elementTableView.Name = reportDataTable.ID; elementTableView.Style = ElementStyle.Group; elementTableView.Expanded = true; elementTableView.Text = String.Format("{0}({1})", reportDataTable.Caption, reportDataTable.TableName); elements.Add(elementTableView); var reportTableView = reportDataTable.CreateView() as ReportTableView; reportTableView.Dock = DockStyle.Top; reportTableView.AutoSize = true; reportTableView.RowCount = 0; reportTableView.BorderStyle = BorderStyle.FixedSingle; reportTableView.DataFetched += ReportTableView_DataFetched; reportTableView.DataRequery += ReportTableView_DataRequery; var elementParameterView = new AccordionControlElement(); elementParameterView.Name = reportDataTable.ID; elementParameterView.Style = ElementStyle.Item; elementParameterView.Expanded = true; elementParameterView.Text = "查询"; var container = new AccordionContentContainer(); container.Controls.Add(reportTableView); container.Height = reportTableView.Height; elementParameterView.ContentContainer = container; reportTableView.SizeChanged += (sender, e) => { container.Height = reportTableView.Height; }; TableControls.Add(reportDataTable.TableName, reportTableView); elementTableView.Elements.Add(elementParameterView); if (parentTableView != null) { parentTableView.ChildTableViews.Add(reportTableView); } if (reportDataTable.ChildTables.IsNotNullOrEmpty()) { RecreateTableView(elementTableView.Elements, reportTableView, reportDataTable.ChildTables); } } }
static void UpdateAccordionControlHeight(AccordionControlElementCollection elems) { foreach (AccordionControlElement elem in elems) { if (elem.Style == ElementStyle.Item) { UpdateAccordionControlHeight(elem); } else { UpdateAccordionControlHeight(elem.Elements); } } }
/// <summary> /// Initializes a new instance of the <see cref="AccordionControlElementCollectionUIAdapter"/> class. /// </summary> /// <param name="navBarGroup"></param> public AccordionControlElementCollectionUIAdapter(AccordionControlElementCollection navBarGroup) { itemCollection = navBarGroup; // Do nothing (except chain constructor) }
/// <summary> /// Initializes a new instance of the <see cref="AccordionControlGroupCollectionUIAdapter"/> class. /// </summary> /// <param name="collection"></param> public AccordionControlGroupCollectionUIAdapter(AccordionControlElementCollection collection) { Guard.ArgumentNotNull(collection, "AccordionControlElementCollection"); navGroupCollection = collection; }