Редактор валют и десятичных знаков в Ultragrid

Мне нужно отформатировать некоторые значения datatypes для ячеек ultragrid. Я использовал DateTimeEditor для форматирования значений datetime.

//Код

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;
       }
   }
}

Теперь, как я могу отформатировать значения currency и decimal?

Есть ли currencyeditor или decimaleditor?


person A Coder    schedule 24.06.2013    source источник


Ответы (2)


Вы можете использовать EditorWithMask, но имейте в виду, что столбец имеет тип данных, и если ваш тип данных столбца несовместим с ожидаемым типом данных Editor, результаты будут непредсказуемыми.

EditorWithMask currency_editor;
DefaultEditorOwnerSettings editorSettings = new DefaultEditorOwnerSettings();
editorSettings.DataType = typeof(decimal);
currency_editor = new EditorWithMask(new DefaultEditorOwner(editorSettings));
editorSettings.MaskInput = "€ nnn.nn";
e.Row.Cells["decimal_column_name"].Editor = mask_editor;
person Steve    schedule 24.06.2013
comment
То же самое объявлено и инициализировано в других тестах, хорошо, я добавлю это в ответ - person Steve; 24.06.2013
comment
Нет, когда я пытаюсь использовать этот код в своем приложении, он говорит, что он не объявлен. Что делать? - person A Coder; 24.06.2013
comment
Я предполагаю, что этот код используется в контексте вашего вопроса, когда переменная editorsettings объявляется над оператором switch. Если это не так, то заявите об этом сами. У вас есть код. - person Steve; 24.06.2013
comment
Чем я могу вам помочь? Вы видите код, в котором вы используете переменную. Вы должны объявить его, и только тогда вы можете использовать переменную. Если компилятор отказывается принимать код, то это потому, что переменная не объявлена ​​или ее объявление не видно в том месте, где вы ее используете, просто так. Обновите вопрос своим реальным кодом - person Steve; 24.06.2013
comment
Пожалуйста, помогите с этим вопросом, пожалуйста, stackoverflow .com/questions/17312414/ - person A Coder; 26.06.2013
comment
Вы можете отформатировать столбец, установив Style = 'Currency' и Format = 'c'. Это работает для меня для отображения десятичного значения в столбце валюты. - person mggSoft; 02.05.2017

Попробуйте эту кодировку currencyColumn.Format = "##,###,####.00"

Спасибо

person Guest    schedule 24.06.2013