📌  相关文章
📜  从 infragistic Ultra 网格中的列选择器选项中隐藏列 - NAYCode.com (1)

📅  最后修改于: 2023-12-03 15:21:52.739000             🧑  作者: Mango

从 infragistic Ultra 网格中的列选择器选项中隐藏列 - NAYCode.com

在Infragistics Ultra WinGrid中,我们可以使用列选择器来选择显示在网格中的列。在某些情况下,我们需要隐藏一些列,但仍然想在列选择器中保留这些隐藏的列。下面是如何在列选择器选项中隐藏列的示例代码。

步骤一:选择哪些列应该隐藏

在网格的Load事件中,我们可以使用以下代码来选择应该被隐藏的列。

private void ultraGrid1_Load(object sender, EventArgs e)
{
    // 隐藏名为"隐藏的列"的列
    var column = ultraGrid1.DisplayLayout.Bands[0].Columns["隐藏的列"];
    if (column != null)
    {
        column.Hidden = true;
    }
}

以上代码使用ultraGrid1DisplayLayout.Bands属性获取第一个位置的Band。 然后,我们访问列集合中的“隐藏的列”列,并将其隐藏。

步骤二:在列选择器中启用隐藏的列

接下来,我们需要在我们的列选择器中启用这些隐藏的列。 为此,请使用以下代码:

private void ultraGrid1_InitializeColumnChooser(object sender, Infragistics.Win.UltraWinGrid.InitializeColumnChooserEventArgs e)
{
    // 从已隐藏的列中构建列表
    foreach (var column in ultraGrid1.DisplayLayout.Bands[0].Columns)
    {
        if (column.Hidden && !e.ColumnChooserControl.VisibleColumns.Contains(column))
        {
            e.ColumnChooserControl.VisibleColumns.Add(column);
        }
    }
}

我们使用InitializeColumnChooser事件来从已隐藏的列中构建要在列选择器栏中显示的列的列表。 对于每个隐藏的列,如果其不在已显示的列列表中,则将其添加到VisibleColumns中。

结论

现在,我们已经将一些列隐藏,但这些列仍然可以在列选择器中选择。 对于某些需要数据输出到 Excel 文件并带有相同列的情况,这会很有用。 通过按照以上步骤,您可以轻松地筛选出需要在列选择器栏中隐藏的列并实现该功能。