Ric*_*hez 2 gridview string-formatting dataformat boundfield
我在gridview中有以下列,一个是日期,另一个是美元金额.我应用了格式并将HtmlEncode属性设置为false,但是值仍然未格式化:
<asp:BoundField DataField="Total" HeaderText="Total" ReadOnly="true" HtmlEncode="False" DataFormatString="{0:C}" />
<asp:BoundField DataField="Sale_Date" HeaderText="Sale Date" ReadOnly="true" HtmlEncode="False" DataFormatString = "{0:d}" />
Run Code Online (Sandbox Code Playgroud)
这是这些值在gridview中的显示方式:
"总计"值显示为:190.0000 销售日期值显示为:9/2/2010 8:59:00 AM
有什么建议?
我发现了问题所在.我无法从gridview格式化boundfields,因为它的数据类型设置为字符串.我用来填充gridview的数据集来自Web服务,数据集中的所有字段都以字符串形式返回,这就是gridview中的DataFormatString属性不起作用的原因.
修复:在我从Web服务获取数据集之后,在将其用作网格视图的数据源之前,我最终更改了这些字段的数据类型,一旦我这样做,gridview中的DataFormatString属性按预期工作:
ds = _ws.GetOrderList(brokerId, type, pageSize, pageNum, sort, searchBy, searchFor);
ds2 = ds.Clone();
ds2.Tables[0].Columns["Price"].DataType = System.Type.GetType("System.Double");
ds2.Tables[0].Columns["Total"].DataType = System.Type.GetType("System.Double");
ds2.Tables[0].Columns["Sale_Date"].DataType = System.Type.GetType("System.DateTime");
foreach (DataRow row in ds.Tables[0].Rows)
{
ds2.Tables[0].ImportRow(row);
}
return ds2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5107 次 |
| 最近记录: |