2013-06-11 3 views
0

Мне нужно отформатировать ячейку UltraGrid.Формат UltragridRow Ячейки

Нравится: Создание ячейки для форматирования DateTime.

я сделал для столбца,

UltraGridColumn.Format = "d" 

также есть ли возможность форматирования отдельных ячеек?

UltraGridRow.Cells("abc")= ? 

Примечание: Использование Infragistics версии 12.1

+0

Какую версию вы используете? –

+0

Не могли бы вы объяснить, почему вам нужно форматировать одну ячейку по-разному от столбца Whole? – Steve

+0

Нет, я выбираю конкретную строку из сетки и показываю детали в другой сетке. Поскольку сетка имеет два столбца, такие как Name и value, я должен сделать это для одной ячейки. Часть значения теперь содержит DateTime, и я должен ее форматировать, а другие ячейки имеют разные значения. Могу ли я получить меня? – iamCR

ответ

4

Уловка, чтобы заставить UltraGrid использовать разные редакторы для ячеек в одном столбце основывается на множестве объектов программирования и моделей, предлагаемых инфраструктуры контроля.

Первое, что нужно учитывать, это событие InitializeRow. Это событие вызывается для каждой строки, когда вы устанавливаете исходный источник данных в сетке или когда вы что-то изменяете в базовом источнике данных. Вы можете различать две ситуации, используя флаг e.Reinitialize. Если он является ложным, тогда весь источник данных применяется к сетке, если он истинен, тогда только подмножество строк повторно инициализируется обычно, потому что пользователь отредактировал ячейку, или код изменил значение в источнике данных.

Вторая вещь, которую следует учитывать, - это свойство Editor, присутствующее в каждом UltraGridCell или UltraGridColumn. Это объект, который автоматически создается UltraGrid для редактирования ячейки. Код UltraGrid задает этот объект на основе типа данных столбца и, очевидно, устанавливает тот же редактор для каждой ячейки столбца. Вы можете настроить свой собственный редактор на уровне столбца (обычно в событии InitializeLayout) или на основе ячейки по ячейкам, глядя на ваше правило форматирования.

Давайте попробуем пример (Большая часть этого берется из кода примера предложил в своих комментариях по Alhalama)

Предположим, у вас есть DataTable только с двумя столбцами: Первый столбец называется CONDITION и содержит строку , Эта строка - мое требование форматирования.
Второй столбец называется DATEINFO и содержит даты, которые должны быть отформатированы по-разному в соответствии со значением в столбце CONDITION.
Итак, если CONDITION = 'TEST1', то ячейка DATEINFO отформатирована с рисунком «День/Месяц/Год», если CONDITION='TEST2', тогда ячейка DATEINFO должна быть отформатирована с часами/минутами/секундами.

private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) 
{ 
    if (e.ReInitialize == false) 
    { 
     DefaultEditorOwnerSettings editorSettings; 
     DateTimeEditor datetime_editor; 
     string condition = e.Row.GetCellValue("Condition").ToString(); 
     switch (condition) 
     { 
      case "TEST1": 
       editorSettings = new DefaultEditorOwnerSettings() 
       editorSettings.DataType = typeof(DateTime); 
       editorSettings.MaskInput = "mm/dd/yyyy"; 
       datetime_editor = new DateTimeEditor(new DefaultEditorOwner(editorSettings)); 
       e.Row.Cells["DateInfo"].Editor = datetime_editor; 
       break; 
      case "TEST2": 
       editorSettings = new DefaultEditorOwnerSettings() 
       editorSettings.DataType = typeof(DateTime); 
       editorSettings.MaskInput = "hh:mm:ss"; 
       datetime_editor = new DateTimeEditor(new DefaultEditorOwner(editorSettings)); 
       e.Row.Cells["DateInfo"].Editor = datetime_editor; 
       break; 
     } 
    } 
} 
+0

Это доступно для десятичных чисел, валюты ... – iamCR

+0

Can v give например editorSettings.MaskInput = "d"? – iamCR

+0

Почему бы и нет? Это общий тип, конечно, тип редактора для сборки должен соответствовать базовому типу данных (EditorWithText, ColorPickerEditor, FontNameEditor, EditorWithMask, EditorWithCombo, OptionSetEditor, CheckEditor). Откройте пример, связанный с Alhalama и найдите frmCellValueList.cs form/designer – Steve

Смежные вопросы