单击标题时的Ultragrid整列选择

时间:2014-05-28 22:57:59

标签: infragistics ultragrid

这似乎是一个非常容易的问题,但我陷入了困境,无法找到解决方法。我在我的表单中使用ultragrid有几个列。我的问题是当我试图点击列标题时,我希望我的整个列都被选中,但事实并非如此。我假设SelectTypeCol是我的列选择的属性,但它也不起作用。我还尝试将每列添加到Selected.Columns集合中,如此UltraGrid1.DisplayLayout.Bands(0).Columns(i).Header.Selected = True但它也不适用于我。我相信Selected只能在运行时使用,但不能在设计模式下使用。

因此,如果有更简单的方法来完成这项工作,请告诉我。

谢谢

2 个答案:

答案 0 :(得分:2)

您正在寻找属性HeaderClickAction

 grid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Select

当您单击标题时,这将自动将整个列的选择状态翻转为Selected(或Delected)。当然,这也意味着您无法自动对所有列进行排序

您可以使用此类代码(C#)

以编程方式设置列的选择状态
 grid.DisplayLayout.Bands[0].Columns["youColumnKey"].Header.Selected = true;

这样可以将HeaderClickAction属性保留为SortSingleSortMulti,但您必须使用代码和相应的事件来处理这种情况

答案 1 :(得分:0)

您需要在网格上安装InitializeLayout事件。在这种情况下,您需要将chekboxsynchronization设置为默认值,它应该在这里工作是示例代码

private void ultraGrid1_InitializeLayout(object sender,
                                             Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
    {
        e.Layout.Bands[0].Columns.Add("CheckBox");
        e.Layout.Bands[0].Columns["CheckBox"].Style = ColumnStyle.CheckBox;
        e.Layout.Bands[0].Columns["CheckBox"].Header.CheckBoxVisibility = HeaderCheckBoxVisibility.WhenUsingCheckEditor;
        e.Layout.Bands[0].Columns["CheckBox"].Header.CheckBoxSynchronization = HeaderCheckBoxSynchronization.Default; <-- make sure it is set to default here
    }