【问题标题】:Ultragrid entire column selection when header is clicked单击标题时选择Ultragrid整个列
【发布时间】:2014-05-28 22:57:59
【问题描述】:

这似乎是一个非常简单的问题,但我被困住了,找不到解决办法。我在我的表单中使用了带有几列的超网格。我的问题是,当我尝试单击列标题时,我希望我的整个列都被选中,但它没有。我假设 SelectTypeCol 是我的列选择的属性,但它也不起作用。我还尝试将每一列添加到 Selected.Columns 集合中,例如 UltraGrid1.DisplayLayout.Bands(0).Columns(i).Header.Selected = True 但它对我也不起作用。我相信 Selected 仅在运行时可用,但在设计模式下不可用。

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

谢谢

【问题讨论】:

    标签: infragistics ultrawingrid


    【解决方案1】:

    您正在寻找房产HeaderClickAction

     grid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Select
    

    当您单击标题时,这将自动将整个列的选择状态翻转为已选择(或已选择)。当然这也意味着你失去了对所有列自动排序的能力

    您可以使用这样的代码 (C#) 以编程方式设置列的选择状态

     grid.DisplayLayout.Bands[0].Columns["youColumnKey"].Header.Selected = true;
    

    这将允许将HeaderClickAction 属性留给SortSingle 或SortMulti,但您必须使用代码和适当的事件来处理这种情况

    【讨论】:

      【解决方案2】:

      您需要在网格上有一个 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
          }
      

      【讨论】:

        猜你喜欢
        • 2013-10-31
        • 2016-05-12
        • 2012-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多