1.tree呈现树表结构展示
UltraTree的数据源是Object类型的,今天我们使用DataSet类型作为其数据源,构造树表结构展示。
step1:构造数据
private DataSet GetTestData()
{
DataSet dataSet = new DataSet();
DataTable dataTableSeries = new DataTable("BusinessProcess");
dataTableSeries.Columns.Add("业务过程", typeof(string));
dataTableSeries.Columns.Add("UsedPT", typeof(string));
dataTableSeries.Columns.Add("GeneratePT", typeof(string));
dataTableSeries.Rows.Add(new object[] { "业务过程", "T", "T" });
DataTable dataTableSpinoffs = new DataTable("Spinoffs");
dataTableSpinoffs.Columns.Add("ParentRecord", typeof(string));
dataTableSpinoffs.Columns.Add("业务过程", typeof(string));
dataTableSpinoffs.Columns.Add("UsedPT", typeof(string));
dataTableSpinoffs.Columns.Add("GeneratePT", typeof(string));
dataTableSpinoffs.Rows.Add(new object[] { "业务过程", "规划计划A", "F", "T" });
dataTableSpinoffs.Rows.Add(new object[] { "业务过程", "规划计划B", "F", "F" });
dataTableSpinoffs.Rows.Add(new object[] { "业务过程", "规划计划C", "T", "F" });
dataTableSpinoffs.Rows.Add(new object[] { "规划计划A", "勘探规划a", "F", "F" });
dataTableSpinoffs.Rows.Add(new object[] { "规划计划A", "勘探计划a", "T", "F" });
dataTableSpinoffs.Rows.Add(new object[] { "规划计划B", "勘探规划b", "F", "T" });
dataTableSpinoffs.Rows.Add(new object[] { "规划计划B", "勘探计划b", "F", "F" });
dataTableSpinoffs.Rows.Add(new object[] { "规划计划C", "勘探规划c", "T", "F" });
dataTableSpinoffs.Rows.Add(new object[] { "勘探规划a", "中长期油气勘探规划", "F", "F" });
dataTableSpinoffs.Rows.Add(new object[] { "勘探规划a", "五年期油气勘探滚动规划", "T", "T" });
dataTableSpinoffs.Rows.Add(new object[] { "勘探计划b", "年度勘探计划", "T", "T" });
dataTableSpinoffs.Rows.Add(new object[] { "勘探计划b", "年度勘探部署", "T", "F" });
dataTableSpinoffs.Rows.Add(new object[] { "勘探计划b", "年度部署调整", "F", "T" });
dataSet.Tables.Add(dataTableSeries);
dataSet.Tables.Add(dataTableSpinoffs);
dataSet.Relations.Add("dataTableSeries", dataTableSeries.Columns["业务过程"], dataTableSpinoffs.Columns["ParentRecord"], false);
dataSet.Relations.Add("SpinoffToSpinoff", dataTableSpinoffs.Columns["业务过程"], dataTableSpinoffs.Columns["ParentRecord"], false);
return dataSet;
}
step2:绑定数据源
this.ultraTree1.ViewStyle = ViewStyle.OutlookExpress;
this.ultraTree1.DataSource = GetTestData();
this.ultraTree1.DataMember = "BusinessProcess";
step3:设置列宽(或使列自适应)
//实现列的自适应(好像不怎么起作用)
// this.ultraTree1.ColumnSettings.AutoFitColumns = AutoFitColumns.ResizeAllColumns;
//设置列宽(这个比较好用)
this.ultraTree1.ColumnSettings.ColumnSets[0].Columns[0].LayoutInfo.PreferredLabelSize = new Size(250, 0);
There is no way to auto-size columns except when using the OutlookExpress ViewStyle:
this.ultraTree1.ColumnSettings.AutoFitColumns = AutoFitColumns.ResizeAllColumns;
其他的样式需要手动设置列的size
step4:隐藏某些列
UltraTree1.ColumnSettings.ColumnSets(X).Columns(Y).Visible = False
Where X is the columnset name / index and Y is the column name / index