环境:.net 2003   sql server2000 如下
<asp:DataGrid id="grdInfo" runat="server" AutoGenerateColumns="False">
<Columns>
    <asp:BoundColumn DataField="PublishDate" HeaderText="时间" DataFormatString="{0:yyyy-MM-dd}"></asp:BoundColumn>
    <asp:BoundColumn DataField="Salary" HeaderText="金额" DataFormatString="{0:c}"></asp:BoundColumn>
/Columns>
</asp:DataGrid>
后台:
DataTable dt ;
dt = db.Select(" Select * from t_familyTeacher ");
grdInfo.DataSource= dt;
grdInfo.DataBind();运行显示如下:
时间                   金额
2005-11-14 15:08:17   223.0000 
2005-11-17 9:29:00    23.0000 为什么显示时,格式不起作用呢?
高手,帮忙

解决方案 »

  1.   

    <asp:BoundColumn DataField="PublishDate" HeaderText="时间" ataFormatString="{0:d}">
      

  2.   

    to:skytear()
      也试过了,不起作用并且是新建的工程,其他都没改变,在两台机器上试了都不行!!
      

  3.   

    DataFormatString
    格式字符 说明 
    C  以货币格式显示数值。 
    D  以十进制格式显示数值。 
    E  以科学记数法(指数)格式显示数值。 
    F  以固定格式显示数值。 
    G  以常规格式显示数值。 
    N  以数字格式显示数值。 
    X  以十六进制格式显示数值。 
      

  4.   

    <asp:BoundColumn DataField="PublishDate" HeaderText="时间" DataFormatString="{0:yyyy-MM-dd}"></asp:BoundColumn>也是可以的!
      

  5.   

    你重新条件一个DataGrid 再试试!
      

  6.   

    <%# DataBinder.Eval(Container.DataItem,"PublishDate","{0:D}"%>或者
    <asp:BoundColumn DataField="PublishDate" HeaderText="时间" DataFormatString="{0:D}"></asp:BoundColumn>d 短日期
    D 长日期
    f 完整
    或者在SQL语句中转换:
    select CONVERT(varchar(12) , getdate(), 111 )
    如:2005/11/17
      

  7.   

    Microsoft .NET Framework SDK v1.1
    查找“格式, 命名的”很详细
      

  8.   

    建议:
    1、把数据源换成DataSet或SqlDataReader试试。
    2、在查询时格式化Select left(CONVERT(varchar, PublishDate, 120),10) as PublishDate from table
      

  9.   

    你Datagrid不设置table怎么会对称
      

  10.   

    <asp:BoundColumn DataField="Salary" HeaderText="金额" DataFormatString="{0:C}"></asp:BoundColumn>{0:C}中的应该是大C
      

  11.   

    终于发现了,偶在DataTable中用了强类型,datagrid中任何设置都不起作用了