我在一个gridview以下各列,一种是日期,而另一个是一个金额。我所施加的格式化和设置HtmlEncode属性为假,但是仍然值上来未格式化的:

<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}" />

这是这些值如何出现在GridView:

“总” 值出现时为:的 190.0000 该销售日期值出现为:的 2010年9月2日上午8时59分○○秒

任何建议?

有帮助吗?

解决方案

我发现了什么问题。我无法将绑定列在GridView的格式,因为它的数据类型设置为字符串。该数据集,我使用填充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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top