问题描述
我在gridview中有以下列,一个是日期,另一个是美元数量。我应用了格式并将HtmlEncode属性设置为false,但是这些值仍然没有格式化:
< asp:BoundField DataField =TotalHeaderText =TotalReadOnly =trueHtmlEncode =FalseDataFormatString ={0:C}/>
< asp:BoundField DataField =Sale_DateHeaderText =Sale DateReadOnly =trueHtmlEncode =FalseDataFormatString ={0:d}/>
这些值是如何显示在gridview中的:
总计值为: 190.0000
出售日期值显示为: 2010年9月2日8:59:00
有什么建议?
。我无法格式化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(在ds.Tables [0] .Rows中的DataRow行)
{
ds2.Tables [0] .ImportRow(row);
}
return ds2
I have the following columns in a gridview, one is a date and the other one is a dollar amount. I applied the formatting and set the HtmlEncode property to false, however the values still come up unformatted:
<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}" />
This is how these values appear in the gridview:
The "Total" value comes up as: 190.0000The Sale Date value comes up as: 9/2/2010 8:59:00 AM
Any suggestions?
I found what the problem was. I was not able to format the boundfields from the gridview because its data type was set to a string. The data set that I am using to populate the gridview is coming from a web service, all fields in the data set are coming back as strings so that is why the DataFormatString property in the gridview was not working.
The fix: I ended up changing the data type of these fields after I got the data set from the web service and before using it as the datasource of the grid view, once I did this, the DataFormatString property in the gridview worked as expected:
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
这篇关于在gridview中应用于绑定字段的格式不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!