infragistics's ultragrid 控件显示列与实际列的关系

本文介绍使用UltraGrid组件进行列选择及数据排序的方法。通过ShowColumnChooser()弹出列选择器窗口,允许用户选择列的可见性。并提供了一种获取当前显示列及其顺序的策略,以便按照当前列的顺序输出数据。
摘要由CSDN通过智能技术生成

弹出列选择器窗口:

ultraGrid1.ShowColumnChooser();

通过列选择器,可以使某些列不可见。
如果隐藏了某些列,同时又拖拽改变了列顺序,比如原来是   1   2   3   4

现在是  3   1

对于某一行,想按照现在的顺序依次输出列值,思路是:先用一个Dictionary<int,int>存 显示列与实际列,

代码:

        private void GetSortedDictionary(ref Dictionary<int, int> di,UltraGrid ug)
        {
            Dictionary<int, int> di = new Dictionary<int, int>();
            for (int ii = 0; ii < ug.DisplayLayout.Bands[0].Columns.Count; ii++)
            {
                if (ug.DisplayLayout.Bands[0].Columns[ii].Hidden == true)
                    continue;

                di.Add(ug.DisplayLayout.Bands[0].Columns[ii].Header.VisiblePosition, ii);
            }

        }

然后对 此Dictionary 按 key  排序

var sortedDict = (from entry in di orderby entry.Key ascending select entry)
                            .ToDictionary(pair => pair.Key, pair => pair.Value);

对于某行,就可以:

                string sRowText = "";

                foreach (var pair in sortedDict)
                {

                    sRowText = sRowText + row.Cells[pair.Value].Value.ToString();
                }

 

 

 

 

 

转载于:https://www.cnblogs.com/lthxk-yl/archive/2013/03/25/2980004.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值