在 Devexpress 中修改 Master-Detail 网格中的列 header 名称
Modifying column header names in Master-Detail grid in Devexpress
我有一个 Master-Detail 设置了 2 个网格。在主网格上,我将 ShowOnlyPredefinedDetails
选项设置为 false
。
这意味着我看到了一个小 + 号,它允许我扩展细节网格的细节(在主网格中)。我想重命名
该部分中的某些列以及隐藏某些列。我正在使用 VB.NET 我该怎么做。见图像。
您可以通过使用网格控件 ViewRegistered 事件来完成此操作,您可以从那里修改该网格视图中的列,这些列中包含您要修改、重命名或删除的列。这是一个示例,希望对您有所帮助:
private void myGridControl_ViewRegistered(object sender, DevExpress.XtraGrid.ViewOperationEventArgs e)
{
if (e != null)
{
if (e.View != null)
{
//Inside of this statement you can adjust, add, and modify all of the columns inside of that grid that appears when you click on the +
(e.View as GridView).Columns["myHiddenColumn"].Visible = false;
(e.View as GridView).Columns.Add(new GridColumn() { Name = "AddColumn", Caption = "Name To Display", Visible = true, FieldName = "DataField"});
(e.View as GridView).Columns["DataField"].OptionsColumn.AllowEdit = false;
(e.View as GridView).Columns["DataField"].OptionsColumn.AllowFocus = false;
(e.View as GridView).Columns["DataField"].OptionsColumn.ReadOnly = true;
}
}
}
我认为您需要做的就是为您的详细信息创建第二个网格视图。如果您还没有这样做,请执行以下操作:
- 在您的网格设计器中,单击 "Retrieve Details"(如果您尚未这样做)。这将使设计者认识到您的绑定中有第二个级别 object:
- 看到第二层后,现在您需要一个新的网格视图。单击 "Click here to change view" 和 select "Create a new view" 并选择 "GridView."
现在您将看到来自设计器的两个网格视图,单击一个或另一个会将菜单的上下文更改为左侧:
例如,如果您有 gridView2
selected,当您单击 "Layout" 菜单时,它将显示详细信息网格的当前布局,而不是主网格.从这里,您可以根据需要删除或添加列。同样,从 "Columns" 菜单中您将看到新列(您可能必须通过将它们拖过来将它们添加到视图中),并且您可以更改 Caption
属性 来更改标题文本。
我建议您使用 Data Annotation 属性和 data-classes 的属性来声明数据在 GridControl 中的显示方式:
要跳过特定 属性 的列生成,您可以使用 <DisplayAttribute(AutoGenerateField := false)>
声明标记此 属性。
要防止列显示,您可以使用 <DisplayAttribute(Order := -1)>
声明标记此 属性。稍后,用户可以通过 Column Chooser UI.
显示此列
要指定列标题,请使用 <DisplayAttribute(Name := "YOUR CAPTION")>
声明。
您还可以控制 filtering/editing/formatting 和验证功能。
相关链接:
我有一个 Master-Detail 设置了 2 个网格。在主网格上,我将 ShowOnlyPredefinedDetails
选项设置为 false
。
这意味着我看到了一个小 + 号,它允许我扩展细节网格的细节(在主网格中)
您可以通过使用网格控件 ViewRegistered 事件来完成此操作,您可以从那里修改该网格视图中的列,这些列中包含您要修改、重命名或删除的列。这是一个示例,希望对您有所帮助:
private void myGridControl_ViewRegistered(object sender, DevExpress.XtraGrid.ViewOperationEventArgs e)
{
if (e != null)
{
if (e.View != null)
{
//Inside of this statement you can adjust, add, and modify all of the columns inside of that grid that appears when you click on the +
(e.View as GridView).Columns["myHiddenColumn"].Visible = false;
(e.View as GridView).Columns.Add(new GridColumn() { Name = "AddColumn", Caption = "Name To Display", Visible = true, FieldName = "DataField"});
(e.View as GridView).Columns["DataField"].OptionsColumn.AllowEdit = false;
(e.View as GridView).Columns["DataField"].OptionsColumn.AllowFocus = false;
(e.View as GridView).Columns["DataField"].OptionsColumn.ReadOnly = true;
}
}
}
我认为您需要做的就是为您的详细信息创建第二个网格视图。如果您还没有这样做,请执行以下操作:
- 在您的网格设计器中,单击 "Retrieve Details"(如果您尚未这样做)。这将使设计者认识到您的绑定中有第二个级别 object:
- 看到第二层后,现在您需要一个新的网格视图。单击 "Click here to change view" 和 select "Create a new view" 并选择 "GridView."
现在您将看到来自设计器的两个网格视图,单击一个或另一个会将菜单的上下文更改为左侧:
例如,如果您有 gridView2
selected,当您单击 "Layout" 菜单时,它将显示详细信息网格的当前布局,而不是主网格.从这里,您可以根据需要删除或添加列。同样,从 "Columns" 菜单中您将看到新列(您可能必须通过将它们拖过来将它们添加到视图中),并且您可以更改 Caption
属性 来更改标题文本。
我建议您使用 Data Annotation 属性和 data-classes 的属性来声明数据在 GridControl 中的显示方式:
要跳过特定 属性 的列生成,您可以使用 <DisplayAttribute(AutoGenerateField := false)>
声明标记此 属性。
要防止列显示,您可以使用 <DisplayAttribute(Order := -1)>
声明标记此 属性。稍后,用户可以通过 Column Chooser UI.
要指定列标题,请使用 <DisplayAttribute(Name := "YOUR CAPTION")>
声明。
您还可以控制 filtering/editing/formatting 和验证功能。
相关链接: