2009-05-20 4 views
2

Мне нужно получить доступ к столбцам ультрарадикала ультраградиента в той же последовательности, в которой они отображаются в сетке. Если я могу получить индекс столбца в той же последовательности, что и в сетке, я могу исправить свои проблемы. Спасибо заранее.Доступ к столбцам сетки в той же последовательности, в которой они видны

Лалита

+0

Так что тег [tag: asp.net] заставляет меня задаться вопросом, действительно ли это должно быть отмечено тегом [tag: UltraWebGrid] ... –

ответ

0

Я полагаю, вы могли бы попытаться обработать событие, которое вызывается, когда порядок изменяется и следить за всеми изменениями, но это, кажется, как она просит тонких ошибок закрадываться.

Я рассмотрел цикл через все столбцы и попытался использовать какое-то свойство, которое сообщило бы мне о своей текущей позиции (возможно, TabOrder?) И использовать это для компиляции списка столбцов. Я думаю, вам, возможно, придется перебирать каждый столб с помощью метода Column.GetRelatedVisibleColumn().

Я еще не реализовал его, поскольку у меня есть другие проблемы с более высоким приоритетом, но это может быть дорога, в которой я заканчиваю вниз.

2
UltraGridColumn column = this.ultraGrid1.DisplayLayout.Bands[0].Columns[0]; 

Debug.WriteLine("Columns in visible order: "); 

     // Get the first visible column by passing in VisibleRelation.First. 
     column = column.GetRelatedVisibleColumn(VisibleRelation.First); 

     while (null != column) 
     { 
      Debug.WriteLine(" " + column.Key); 

      // Get the next visible column by passing in VisibleRelation.Next. 
      column = column.GetRelatedVisibleColumn(VisibleRelation.Next); 
     } 

http://help.infragistics.com/Help/NetAdvantage/NET/2008.2/CLR2.0/html/Infragistics2.Win.UltraWinGrid.v8.2~Infragistics.Win.UltraWinGrid.UltraGridColumn~GetRelatedVisibleColumn.html

0

Это старый вопрос, но в последнее время у меня была такая же проблема, и решить это следующим образом:

var selectedCells = this.Selected.Cells; 

List<int> columns = new List<int>(); 

foreach (var cell in selectedCells) 
     { 
      if (!columns.Contains(cell.Column.Index)) 
       columns.Add(cell.Column.Index); 
     } 

columns.Sort((x, y) => this.DisplayLayout.Rows.Band.Columns[x].Header.VisiblePosition.CompareTo(this.DisplayLayout.Rows.Band.Columns[y].Header.VisiblePosition)); 

Вы можете использовать columns для доступа столбцов, чтобы они показаны ,