2012-05-21 3 views

ответ

10

Используйте CustomDrawCell событие, если вы просто хотите, чтобы отобразить ячейку неизменяемые. или Вы также можете использовать CustomColumnDisplayText Event.

Попробуйте это:

private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) 
      { 
       if (e.Column.FieldName == "Marks") 
       { 
        e.DisplayText = (((int)(Convert.ToDecimal(e.CellValue) * 100))).ToString() + "%"; 
       } 
      } 

Другой способ использовать свойство редактора EditFormat и DisplayFormat. и после установки этих свойств добавьте его в GridView колонки: Ref: How to format values shown in the XtraGrid

RepositoryItem textEdit; 
     private void AddGridRepositoryItem() 
     { 
      textEdit = new RepositoryItemTextEdit(); 
      textEdit.AllowHtmlDraw = DevExpress.Utils.DefaultBoolean.True; 
      textEdit.ReadOnly = true; 
      gridControl1.RepositoryItems.Add(textEdit); 

      textEdit.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; 
      textEdit.DisplayFormat.FormatString = "p"; 
      gridView1.Columns[0].ColumnEdit = textEdit; 

     } 

Самый простой способ заключается в использовании GridColumn.DisplayFormat собственности.

colPayment.DisplayFormat.FormatType = FormatType.Numeric; 
colPayment.DisplayFormat.FormatString = "p0"; 

Надеется, что это поможет ..

+1

Это именно то, что я искал. +1 для всех ссылок. – Stavros

+0

Nice, и это также позволило мне хранить проценты в виде байта/tinyint - спасибо! В противном случае GridControl не интерпретировал данные так, как я хотел, -> 10 процентов превратились в 1000% :) – Prokurors

+0

Почему же это принятый ответ? – Aron

8

Пожалуйста, используйте следующий подход:

colReabilitation.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; 
colReabilitation.DisplayFormat.FormatString = "p0"; 

Ссылки по теме:

+0

капитала 'P' будет рассматривать его как' 50, как 50% ', если вы хотите использовать шкалу' 0 до 1' сусла использовать небольшой 'p' в формате строка .. –

+0

@NiranjanKala: Спасибо. Это моя ошибка. Я обновил свой ответ. – DmitryG