【问题标题】:Modifying column header names in Master-Detail grid in Devexpress在 Devexpress 的主从网格中修改列标题名称
【发布时间】:2016-02-11 20:00:00
【问题描述】:

我有一个包含 2 个网格的主从设置。在主网格上,我将ShowOnlyPredefinedDetails 选项设置为false。 这意味着我看到了一个小 + 号,它允许我展开详细网格的详细信息(在主网格中)。我想改名 该部分中的某些列以及隐藏某些列。我正在使用 VB.NET 我该怎么做。见图片。

【问题讨论】:

    标签: vb.net devexpress master-detail


    【解决方案1】:

    您可以通过使用网格控件 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;
                }
            }
    }
    

    【讨论】:

    • 这行得通。以下是 Devexpress 支持团队提供的另一个解决方案。 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
    • 当我尝试将 gridView 导出为 PDF 时,仅导出当前选定的行,其中包含正确数量的字段和正确的重命名字段。这是我使用的代码。我将如何导出具有正确数量的字段并重命名所有行的所有行。 gvClone.OptionsPrint.ExpandAllDetails = True gvClone.ExportToPdf("gvCloneViewData.pdf")
    • 您可以使用以下代码启用网格的多选:gridView.OptionsSelection.MultiSelect = true; 这应该导出您选择的所有行。如果您想始终导出每一行,则需要在导出为 PDF 之前以编程方式选择所有行。
    【解决方案2】:

    我认为您需要做的就是为您的详细信息创建第二个网格视图。如果您还没有这样做,请执行以下操作:

    1. 如果您还没有这样做,请在您的网格设计器中单击“检索详细信息”。这将使设计者认识到您在绑定对象中有第二层:

    1. 看到第二层后,现在您需要一个新的网格视图。单击“单击此处更改视图”并选择“创建新视图”并选择“GridView”。

    现在您将看到来自设计器的两个网格视图,单击其中一个将更改左侧菜单的上下文:

    例如,如果您选择了gridView2,当您单击“布局”菜单时,它将显示您的详细网格而不是主网格的当前布局。从这里,您可以删除或添加您认为合适的列。同样,从“列”菜单中,您将看到新列(您可能必须通过将它们拖到视图上来将它们添加到视图中),并且您可以更改 Caption 属性以更改标题的文本。

    【讨论】:

      【解决方案3】:

      我建议您使用带有数据类属性的Data Annotation 属性来声明您的数据应如何在 GridControl 中显示:

      要跳过特定属性的列生成,您可以使用 <DisplayAttribute(AutoGenerateField := false)> 声明标记此属性。

      要防止列显示,您可以使用 <DisplayAttribute(Order := -1)> 声明标记此属性。稍后,用户可以通过列选择器 UI 显示此列。

      要指定列标题,请使用<DisplayAttribute(Name := "YOUR CAPTION")> 声明。

      您还可以控制过滤/编辑/格式化和验证功能。

      相关链接:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        • 2013-12-10
        • 2021-10-20
        • 1970-01-01
        • 2017-02-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多