ultrafunk3keywingrid的header属性为什么总显示key值 修改也不起作用 是不是什么属性有问题

[c#]显示分层数据的 UltraWinGrid 与一些自定义网格的外观设置吗?
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.
我有对象,看起来像这样:
public class ComponentProperty
public string Property { }
public object Value { }
public string DataType { }
public string PropertyKey { }
public string Unit { }
public string DependencyType { }
public object ListType { }
public List&ComponentProperty& Properties { }
我过去的信息生成以下形式的 BindingList 输出在哪里:
public class ComponentPropertyList: BindingList&ComponentProperty&
列表中的组件属性绑定到 Infragistics Ultra WinGrid 来生成大师-详细信息视图和我做了之后中网格设置的自定义:
void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
ultraGrid1.DisplayLayout.Override.AllowColSizing = AllowColSizing.S
e.Layout.Bands[0].Override.HeaderAppearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.T
ultraGrid1.DisplayLayout.Appearance.BackColor = Color.W
ultraGrid1.DisplayLayout.Appearance.BackColor2 = Color.W
ultraGrid1.DisplayLayout.Override.ActiveRowAppearance =
ultraGrid1.DisplayLayout.BorderStyle = UIElementBorderStyle.N
ultraGrid1.DisplayLayout.Override.BorderStyleCell = UIElementBorderStyle.N
ultraGrid1.DisplayLayout.Override.BorderStyleRow = UIElementBorderStyle.N
ultraGrid1.DisplayLayout.Override.ColumnAutoSizeMode = ColumnAutoSizeMode.D
ultraGrid1.DisplayLayout.Bands[0].ColHeadersVisible =
ultraGrid1.DisplayLayout.Bands[0].Override.RowSelectors = DefaultableBoolean.F
ultraGrid1.DisplayLayout.Bands[0].Columns[0].CellActivation = Activation.NoE
ultraGrid1.DisplayLayout.Bands[0].Columns[1].CellActivation = Activation.AllowE
//Infosys: Nikita - Added for #1143 - START
ultraGrid1.DisplayLayout.Bands[0].Columns["Unit"].CellActivation = Activation.NoE
//Infosys: Nikita - Added for #1143 - END
ultraGrid1.DisplayLayout.Bands[0].Columns[1].CellAppearance.BorderColor = Color.B
ultraGrid1.DisplayLayout.Override.RowAppearance.TextVAlign = VAlign.M
// e.Layout.Bands[0].Columns[1].Width = 90;
ultraGrid1.DisplayLayout.Scrollbars = Scrollbars.A
ultraGrid1.DisplayLayout.ScrollBounds = ScrollBounds.ScrollToF
ultraGrid1.DisplayLayout.AutoFitStyle = AutoFitStyle.ResizeAllC
ultraGrid1.DisplayLayout.Bands[0].Columns[2].AutoSizeMode = ColumnAutoSizeMode.N
ultraGrid1.DisplayLayout.Bands[0].Columns[3].AutoSizeMode = ColumnAutoSizeMode.N
ultraGrid1.DisplayLayout.Bands[0].Columns[2].Hidden =
ultraGrid1.DisplayLayout.Bands[0].Columns[3].Hidden =
//ultraGrid1.DisplayLayout.Bands[0].Columns[Constants.Collevel].Hidden =
//ultraGrid1.DisplayLayout.Bands[0].Columns[Constants.ColID].Hidden =
//ultraGrid1.DisplayLayout.Bands[0].Columns[Constants.Colparentid].Hidden =
ultraGrid1.DisplayLayout.Bands[0].Columns["DependencyType"].Hidden =
ultraGrid1.DisplayLayout.Bands[0].Columns["ListType"].Hidden =
//ultraGrid1.DisplayLayout.Bands[0].Override.AllowColSizing = AllowColSizing.S
ultraGrid1.DisplayLayout.BorderStyle = UIElementBorderStyle.D
//ultraGrid1.DisplayLayout.Bands[0].Columns[1].TabStop =
ultraGrid1.DisplayLayout.Bands[0].Columns[1].CellAppearance.BackColor = Color.W
ultraGrid1.DisplayLayout.Bands[0].Columns["Value"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownL
ultraGrid1.DisplayLayout.Bands[0].Columns["Value"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.A
ultraGrid1.DisplayLayout.Bands[0].Columns["Value"].CellAppearance.BackColor = Color.W
ultraGrid1.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.CellsO
ultraGrid1.DisplayLayout.Bands[0].Columns[1].SupportDataErrorInfo = DefaultableBoolean.T
ultraGrid1.DisplayLayout.Bands[0].Columns[0].Width = 200;
ultraGrid1.DisplayLayout.Bands[0].Columns["Value"].Width = 120;
ultraGrid1.DisplayLayout.Bands[0].Columns["Value"].TabIndex = 0;
ultraGrid1.DisplayLayout.Bands[0].Columns["Unit"].Width = 60;
for (int rowCount = 0; rowCount & ultraGrid1.Rows.C rowCount++)
UltraGridRow row = ultraGrid1.Rows[rowCount];
if (string.IsNullOrEmpty(Convert.ToString(row.Cells[1].Value)))
row.Cells[1].Appearance.BackColor = Color.W
ultraGrid1.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.S
ultraGrid1.DisplayLayout.Override.BorderStyleCell = Infragistics.Win.UIElementBorderStyle.S
ultraGrid1.DisplayLayout.Override.GroupByRowSpacingAfter = 0;
ultraGrid1.DisplayLayout.Override.GroupByRowSpacingBefore = 0;
ultraGrid1.DisplayLayout.Override.HeaderPlacement = HeaderPlacement.OncePerGroupedRowI
if (ultraGrid1.DisplayLayout.Bands.Count & 1)
ultraGrid1.DisplayLayout.Bands[1].ColHeadersVisible =
ultraGrid1.DisplayLayout.Bands[1].Columns[2].AutoSizeMode = ColumnAutoSizeMode.N
ultraGrid1.DisplayLayout.Bands[1].Columns[3].AutoSizeMode = ColumnAutoSizeMode.N
ultraGrid1.DisplayLayout.Bands[1].Columns[0].CellActivation = Activation.NoE
ultraGrid1.DisplayLayout.Bands[1].Columns[4].CellActivation = Activation.NoE
ultraGrid1.DisplayLayout.Bands[1].Columns[2].Hidden =
ultraGrid1.DisplayLayout.Bands[1].Columns[3].Hidden =
ultraGrid1.DisplayLayout.Bands[1].Columns["DependencyType"].Hidden =
ultraGrid1.DisplayLayout.Bands[1].Columns["ListType"].Hidden =
ultraGrid1.DisplayLayout.Bands[1].Columns[0].Width = 120;
//ultraGrid1.DisplayLayout.Bands[1].Columns[0].TabStop =
ultraGrid1.DisplayLayout.Bands[1].Columns["Value"].Width = 180;
ultraGrid1.DisplayLayout.Bands[1].Columns["Value"].TabIndex = 0;
ultraGrid1.DisplayLayout.Bands[1].Columns["Unit"].Width = 60;
//ultraGrid1.DisplayLayout.Bands[1].Columns[Constants.ColUnit].TabStop =
ultraGrid1.DisplayLayout.Override.RowSelectors = DefaultableBoolean.F
if (e.Layout.Bands[1].Columns.Exists(" ") == true)
ultraGrid1.DisplayLayout.Bands[1].Columns[" "].Width = 0;
if (e.Layout.Bands[1].Columns.Exists(" ") == false)
ultraGrid1.DisplayLayout.Bands[1].Columns.Add(" ");
ultraGrid1.DisplayLayout.Bands[1].Columns[" "].Header.VisiblePosition = 0;
ultraGrid1.DisplayLayout.Bands[1].Columns[" "].Width = 0;
if (ultraGrid1.DisplayLayout.Bands.Count & 2)
ultraGrid1.DisplayLayout.Bands[2].ColHeadersVisible =
ultraGrid1.DisplayLayout.Bands[2].Columns[2].AutoSizeMode = ColumnAutoSizeMode.N
ultraGrid1.DisplayLayout.Bands[2].Columns[3].AutoSizeMode = ColumnAutoSizeMode.N
ultraGrid1.DisplayLayout.Bands[2].Columns[0].CellActivation = Activation.NoE
ultraGrid1.DisplayLayout.Bands[2].Columns[4].CellActivation = Activation.NoE
//ultraGrid1.DisplayLayout.Bands[2].Override.AllowColSizing = AllowColSizing.N
ultraGrid1.DisplayLayout.Bands[2].Columns[2].Hidden =
ultraGrid1.DisplayLayout.Bands[2].Columns[3].Hidden =
ultraGrid1.DisplayLayout.Bands[2].Columns["DependencyType"].Hidden =
ultraGrid1.DisplayLayout.Bands[2].Columns["ListType"].Hidden =
ultraGrid1.DisplayLayout.Bands[2].Columns[0].Width = 200;
ultraGrid1.DisplayLayout.Bands[2].Columns["Value"].Width = 120;
ultraGrid1.DisplayLayout.Bands[2].Columns["Unit"].Width = 60;
ultraGrid1.DisplayLayout.Override.RowSelectors = DefaultableBoolean.F
//ultraGrid1.DisplayLayout.Bands[2].Columns[0].TabStop =
ultraGrid1.DisplayLayout.Bands[2].Columns["Value"].TabIndex = 0;
//ultraGrid1.DisplayLayout.Bands[2].Columns[Constants.ColUnit].TabStop =
ultraGrid1.DisplayLayout.Bands[2].Columns["Value"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownL
ultraGrid1.DisplayLayout.Bands[2].Columns["Value"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.
if (e.Layout.Bands[2].Columns.Exists(" ") == true)
ultraGrid1.DisplayLayout.Bands[2].Columns[" "].Width = 0;
if (e.Layout.Bands[2].Columns.Exists(" ") == false)
ultraGrid1.DisplayLayout.Bands[2].Columns.Add(" ");
ultraGrid1.DisplayLayout.Bands[2].Columns[" "].Header.VisiblePosition = 0;
ultraGrid1.DisplayLayout.Bands[2].Columns[" "].Width = 0;
e.Layout.Bands[0].Override.CellAppearance.BorderAlpha = Alpha.T
e.Layout.Bands[0].Override.SelectedCellAppearance.ForeColor = Color.B
e.Layout.Bands[0].Override.RowAppearance.BorderAlpha = Alpha.T
e.Layout.Bands[0].Override.CellAppearance.BackColorAlpha = Alpha.T
e.Layout.Bands[0].Columns[0].CellActivation = Activation.NoE
e.Layout.Bands[0].Columns[1].CellActivation = Activation.NoE
e.Layout.Bands[0].Columns[2].CellActivation = Activation.NoE
ultraGrid1.DisplayLayout.AutoFitStyle = AutoFitStyle.ResizeAllC
ultraGrid1.DisplayLayout.Bands[0].Override.RowSelectors = DefaultableBoolean.F
ultraGrid1.DisplayLayout.Appearance.BackColor = Color.W
//ultraGrid1.DisplayLayout.Override.AllowColSizing = AllowColSizing.N
//ultraGrid1.DisplayLayout.Override.AllowRowLayoutColMoving = GridBagLayoutAllowMoving.N
ultraGrid1.DisplayLayout.BorderStyle = UIElementBorderStyle.S
ultraGrid1.DisplayLayout.Bands[0].Columns[1].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.A
ultraGrid1.DisplayLayout.TabNavigation = TabNavigation.NextC
if (e.Layout.Bands[0].Columns.Exists(" ") == true)
ultraGrid1.DisplayLayout.Bands[0].Columns[" "].Width = 0;
//ultraGrid1.DisplayLayout.Bands[0].Columns[" "].ColSpan = 3;
if (e.Layout.Bands[0].Columns.Exists(" ") == false)
ultraGrid1.DisplayLayout.Bands[0].Columns.Add(" ").DataType = typeof(bool);
ultraGrid1.DisplayLayout.Bands[0].Columns[" "].Header.VisiblePosition = 0;
ultraGrid1.DisplayLayout.Bands[0].Columns[" "].Width = 0;
// ultraGrid1.DisplayLayout.Bands[0].Columns[" "].ColSpan = 3;
ultraGrid1.DisplayLayout.Bands[0].Columns[" "].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.CheckB
UltraGridColumn checkBox = ultraGrid1.DisplayLayout.Bands[0].Columns[" "];
foreach (UltraGridBand band in ultraGrid1.DisplayLayout.Bands)
band.HeaderVisible =
componentProperties 集合可以有 N 级别根据的值。
CompoentProperty 1SubProperty1--->SubSubProperty1--->SubSubProperty1--->CompoentProperty 2SubProperty2--->SubSubProperty2--->SubSubProperty2--->SubSubProperty3--->SubSubProperty3--->--------------------------->SubSubProperty NN
布局是不正确的有很多的班丁后分配 DataSource 到网格作为 ComponentProperties 类和指定 Column Size 不会对它的任何影响。以前,我作为需要替换的对象数据源的数据源使用数据表。有没有任何的设置需要使用对象数据源。
解决方法 1:
我的一些解决方案从 Infragistics 位,有什么解决的布局问题。如我检查了当我使用 IList 然后这些设置工作正确设置在窗体加载事件之后。
// Load only upto two descendant bands. So even if the data source has more than 3 level
// deep hierarchy, the UltraGrid will only make use of first two levels and ignore the
// levels deeper than that.
this.ultraGrid1.DisplayLayout.MaxBandDepth = 3;
发生的问题是相似的所问的下面的线程:
默认情况下,网格同步每个波段的列宽。所以在这种情况下在你有一个递归数据源,有的乐队基本上是一个无限的数字和为每个带区网格有点缩进。这意味着第一列获取很大以容纳下来层次结构中的缩进量。网格限制你对 100 带的深度,默认情况下,但这仍然意味着 100 级别的缩进。
所以有很多种方法可以处理这。
将 MaxBandDepth 设置为一个较小的值的网格上。我建议 5 和 8 之间的一个值。这会给你一个体面的机器上很好的性能和大多数用户可能不会深入以上 5 个级别,不管怎么说的。您可以将 AllowColSizing 设置为自由。这将停止同步,列宽度从网格并允许每个带区列以独立的大小调整。UltraWinGrid:自动添加一行
UltraGrid终端用户手动编辑表格时,有时需要自动增加一行,在新增加的行中输入,然后保存。那么UltraGrid是如何设置属性,实现这个功能的呢。
DataTable t = new DataTable();
t.Columns.AddRange(new DataColumn[]
new DataColumn(&工单&,typeof(string)),
new DataColumn(&进度&,typeof(int))
var row = t.NewRow();
row[0] = &workorder001&;
row[1] = 80;
t.Rows.Add(row);
var row2 = t.NewRow();
row2[0] = &workorder002&;
row2[1] = 30;
t.Rows.Add(row2);
this.ultraGrid1.DataSource =
设置自动增加新行:
private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
// Displays the add-row on top of each rows collection.
this.ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnT
this.ultraGrid1.DisplayLayout.Override.TemplateAddRowCellAppearance.BackColor = Color.Y
this.ultraGrid1.DisplayLayout.Override.TemplateAddRowCellAppearance.ForeColor = Color.LightY
首行增加新行,实现效果:
底部增加新行,实现效果:
this.ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnB
顶行自动增加一个固定行:
this.ultraGrid1.DisplayLayout.Override.AllowAddNew =
AllowAddNew.FixedAddRowOnT
this.ultraGrid1.DisplayLayout.Override.TemplateAddRowPrompt =
&Click here to add rows...&;
实现效果:

我要回帖

更多关于 header 的文章

 

随机推荐