2015-08-19 7 views
0

У меня есть RadGrid с AutoGenerate столбцами, установленными на true.Доступ к фактическому значению объекта RadGrid DataItem, а не его текст

Моего источник данные выглядят следующим образом:

DataTable dt = new DataTable(); 
dt.Columns.Add("Column1", typeof (double)); 
dt.Columns.Add("Column2", typeof (double)); 
dt.Columns.Add("Column3", typeof (double)); 

dt.Rows.Add(0.05547, 0.03432, 0.03444); 
dt.Rows.Add(0.54612, 0.77764, 0.86763); 
dt.Rows.Add(0.65711, 0.88735, 0.67864); 

В сетках ItemDataBound события я форматирование значения быть проценты, как это:

double number; 
if (double.TryParse(item[col.UniqueName].Text, out number)) 
{ 
    item[col.UniqueName].Text = string.Format("{0:P2}", number);        
} 

Теперь позволяет сказать, что я хочу, чтобы цикл через grid DataItems где-нибудь еще в коде и получить исходные значения, а не отформатированные процентные значения. Каков наилучший способ сделать это?

foreach (GridDataItem item in RadGrid1.Items) 
{ 
    // This is returning a value like 5 %, I need 0.05547 
    item["Column1"].Text; 
} 

ответ

0

Поскольку вы форматирования текста в ItemDataBound, вы не можете получить исходное значение где-то в коде. ItemDataBound - это поведение, поэтому каждый раз, когда вы делаете postback ItemDatabound, будет выполнен (даже для изменения размера страницы в radgrid).

Но вы можете это сделать, создав новый datatable и заполнив эти детали параллельно в ItemDataBound. Таким образом, вы можете получить данные из данных, которые можно использовать во всем коде.

+0

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