我的RadGrid
AutoGenerate
列设置为true
。
我的数据源如下所示:
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);
}
现在假设我想在代码中的其他位置遍历网格DataItems
并获取原始值,而不是格式化的百分比值。这样做的最佳方式是什么?
foreach (GridDataItem item in RadGrid1.Items)
{
// This is returning a value like 5 %, I need 0.05547
item["Column1"].Text;
}
答案 0 :(得分:0)
由于您要格式化ItemDataBound
中的文本,因此无法在代码中的其他位置获取原始值。 ItemDataBound
是一种行为,因此每次执行回发ItemDatabound
都会被执行,(即使更改了radgrid中的页面大小)。
但您可以通过创建新的datatable
并在ItemDataBound
中平行填写这些详细信息来实现。因此,您可以在整个代码中从该数据表中获取数据。