在gridview中应用于绑定字段的格式不起作用 [英] Formatting applied to boundfields in gridview is not working

查看:174
本文介绍了在gridview中应用于绑定字段的格式不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在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.0000 The 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中应用于绑定字段的格式不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆