【发布时间】:2016-02-11 20:00:00
【问题描述】:
我有一个包含 2 个网格的主从设置。在主网格上,我将ShowOnlyPredefinedDetails 选项设置为false。
这意味着我看到了一个小 + 号,它允许我展开详细网格的详细信息(在主网格中)。我想改名
该部分中的某些列以及隐藏某些列。我正在使用 VB.NET 我该怎么做。见图片。
【问题讨论】:
标签: vb.net devexpress master-detail
我有一个包含 2 个网格的主从设置。在主网格上,我将ShowOnlyPredefinedDetails 选项设置为false。
这意味着我看到了一个小 + 号,它允许我展开详细网格的详细信息(在主网格中)。我想改名
该部分中的某些列以及隐藏某些列。我正在使用 VB.NET 我该怎么做。见图片。
【问题讨论】:
标签: vb.net devexpress master-detail
您可以通过使用网格控件 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;
}
}
}
【讨论】:
Private Sub gvClientGroup_MasterRowExpanded(sender As Object, e As CustomMasterRowEventArgs) Handles gvClientGroup.MasterRowExpanded gvClone = gvClientGroup.GetDetailView(e.RowHandle, e.RelationIndex) gvClone.Columns("ClientNoGroup").Visible = False gvClone.Columns("oldName").Caption = "newName" End Sub
gvClone.OptionsPrint.ExpandAllDetails = True gvClone.ExportToPdf("gvCloneViewData.pdf")
gridView.OptionsSelection.MultiSelect = true; 这应该导出您选择的所有行。如果您想始终导出每一行,则需要在导出为 PDF 之前以编程方式选择所有行。
我认为您需要做的就是为您的详细信息创建第二个网格视图。如果您还没有这样做,请执行以下操作:
现在您将看到来自设计器的两个网格视图,单击其中一个将更改左侧菜单的上下文:
例如,如果您选择了gridView2,当您单击“布局”菜单时,它将显示您的详细网格而不是主网格的当前布局。从这里,您可以删除或添加您认为合适的列。同样,从“列”菜单中,您将看到新列(您可能必须通过将它们拖到视图上来将它们添加到视图中),并且您可以更改 Caption 属性以更改标题的文本。
【讨论】:
我建议您使用带有数据类属性的Data Annotation 属性来声明您的数据应如何在 GridControl 中显示:
要跳过特定属性的列生成,您可以使用 <DisplayAttribute(AutoGenerateField := false)> 声明标记此属性。
要防止列显示,您可以使用 <DisplayAttribute(Order := -1)> 声明标记此属性。稍后,用户可以通过列选择器 UI 显示此列。
要指定列标题,请使用<DisplayAttribute(Name := "YOUR CAPTION")> 声明。
您还可以控制过滤/编辑/格式化和验证功能。
相关链接:
【讨论】: