为什么{0:d}不起作用,就显示2005-1-20 0:00:00DataGrid中
<asp:TemplateColumn SortExpression="ReportDate" HeaderText="呈报时间">
<ItemTemplate>
<asp:Label runat="server" ID="Label9" Text='<%# DataBinder.Eval(Container.DataItem, "ReportDate" ,"{0:d}") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>

解决方案 »

  1.   

    兄弟跟我昨天碰到的问题一样!我看DATAGRID没有列表格内容的格式设置!
    最后只有将数据库表中的日期字段设为字符串字段!才得以解决!
      

  2.   

    SELECT CONVERT(CHAR(10),GETDATE(),102) FROM TABLENAME
      

  3.   

    select convert(varchar(10),ReportDate,121) from tablename这样就可以了
      

  4.   

    在getrs(sql语句)的时候加CONVERT就可以了
      

  5.   

    <asp:Label runat="server" ID="Label9" Text='<%# DataBinder.Eval(Container.DataItem, "ReportDate" ,"{0:yyyy-MM-dd}") %>'>
      

  6.   

    先谢谢楼上的几位!
    在sql中处理,我知道可以,但我想弄清楚为什么这么写不可以?
    <asp:Label runat="server" ID="Label9" Text='<%# DataBinder.Eval(Container.DataItem, "ReportDate" ,"{0:d}") %>'>to  goody9807() ,我也试过这么写,但还是不行,好像"{0:yyyy-MM-dd}"不起作用,请问是不是有什么使用的条件 。
      

  7.   

    请问是不是跟数据库中存的数据有关?
    我这里的ReportDate是datetime型,里面的数据是2005-1-20
    为什会显示2005-1-20 0:00:00???
      

  8.   

    日期的列这样写试试
    <asp:BoundColumn DataField="birthdate" HeaderText="出生年月" DataFormatString="{0:D}">
      

  9.   

    谁碰到过这种情况,应该怎么解决啊!
    我的代码如下
    <%@ Page language="c#" Codebehind="Index.aspx.cs" AutoEventWireup="false" Inherits="LegalSystem.SubModule.TCAJ.Main.Index" %>
    <%@ Register TagPrefix="uc1" TagName="Tab_Footer" Src="../../../Inc/Tab_Footer.ascx" %>
    <%@ Register TagPrefix="uc1" TagName="Tab_Header" Src="../../../Inc/Tab_Header.ascx" %>
    <%@ Register TagPrefix="uc1" TagName="Header" Src="../../../Inc/Header.ascx" %>
    <%@ Register TagPrefix="uc1" TagName="Footer" Src="../../../Inc/Footer.ascx" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
      <HEAD>
    <title>退查案件监督系统</title>
    <META http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    <LINK href="../../../Css/main.css" type="text/css" rel="stylesheet">
      </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <uc1:Header id="Header1" runat="server"></uc1:Header>
    <table width="100%" border="0">
    <tr>
    <td width="3"></td>
    <td width="40%">
    当前位置:<a href="list.asp">退查案件监督</a>→
    </td>
    <td width="59%">
    <MARQUEE onmouseover="this.stop()" onmouseout="this.start()" scrollAmount="3" width='100%'>&nbsp; 
    当前时间:</MARQUEE>
    </td>
    </tr>
    </table>
    <table cellSpacing="1" cellPadding="0" width="100%" bgColor="#a0bce7" border="0">
    <tr>
    <td bgColor="#ffffff">
    <table cellSpacing="0" cellPadding="0" width="100%" bgColor="#e2e9ff" border="0">
    <tr>
    <td>
    <table width="100%" border="0" bordercolor="#3399ff" bgcolor="#e2e9ff">
    <tr>
    <td width="43%">&nbsp;</td>
    <td width="8%">快速查询</td>
    <td width="53" style="WIDTH: 53px">
    <asp:dropdownlist ID="DDLst_TransactDept" runat="server" AutoPostBack="True"></asp:dropdownlist></td>
    <td width="31%">
    <asp:dropdownlist ID="DDL_IsReportBack" runat="server"></asp:dropdownlist></td>
    <td width="10%"></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    <uc1:Tab_Header id="Tab_Header1" runat="server"></uc1:Tab_Header>
    <table cellSpacing="1" cellPadding="0" width="100%" border="0">
    <tr>
    <td>
    <asp:datagrid id="DG_TcajList" runat="server" width="100%" AllowPaging="True" PageSize="20" AutoGenerateColumns="False"
    Font-Size="9pt" Font-Names="宋体" AllowSorting="True">
    <AlternatingItemStyle BackColor="#E2E9FF"></AlternatingItemStyle>
    <ItemStyle HorizontalAlign="Center" Height="25px" BackColor="White"></ItemStyle>
    <HeaderStyle HorizontalAlign="Center" Height="30px" CssClass="a1" VerticalAlign="Middle"></HeaderStyle>
    <Columns>
    <asp:TemplateColumn HeaderText="序号">
    <ItemTemplate>
    <asp:Label id=Label1 runat="server" Text='<%# Container.ItemIndex+1 %>'>
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn SortExpression="Sort" HeaderText="类别">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Sort") %>' ID="Label2">
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn SortExpression="CaseType" HeaderText="案由">
    <ItemTemplate>
    <asp:Label id="Label3" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "CaseType") %>'>
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn SortExpression="Criminal" HeaderText="对象姓名">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Criminal") %>' ID="Label4">
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn SortExpression="TransactDept" HeaderText="经办单位">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "TransactDept") %>' ID="Label5">
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn SortExpression="TransactOneCode" HeaderText="主办人">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# TransCodeToName(DataBinder.Eval(Container.DataItem, "TransactOneCode").ToString()) %>' ID="Label6">
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn SortExpression="CheckManCode" HeaderText="审核领导">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# TransCodeToName(DataBinder.Eval(Container.DataItem, "CheckManCode").ToString()) %>' ID="Label7">
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn SortExpression="ReportIdea" HeaderText="呈报意见">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ReportIdea") %>' ID="Label8">
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn SortExpression="ReportDate" HeaderText="呈报时间">
    <ItemTemplate>
    <asp:Label runat="server" ID="Label9" Text='<%# DataBinder.Eval(Container.DataItem, "ReportDate" ,"{0:yyyy-MM-dd}").ToString() %>'>
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="最近退查时间">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# GetLatestCheckBackDate(DataBinder.Eval(Container.DataItem, "CaseID").ToString()) %>' ID="Label10">
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="退查次数">
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# GetCheckBackCount(DataBinder.Eval(Container.DataItem, "CaseID").ToString()) + "次" %>' ID="Label11">
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="反馈情况">
    <ItemTemplate>
    <asp:Label id="Label12" runat="server" Text='<%# GetIsReportBack(DataBinder.Eval(Container.DataItem, "CaseID").ToString()) %>'>
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    <PagerStyle NextPageText="下一页" Height="25px" PrevPageText="上一页" HorizontalAlign="Right"></PagerStyle>
    </asp:datagrid>
    </td>
    </tr>
    </table>
    <uc1:Tab_Footer id="Tab_Footer1" runat="server"></uc1:Tab_Footer>
    <uc1:Footer id="Footer1" runat="server"></uc1:Footer>
    </form>
    </body>
    </HTML>
      

  10.   

    谢谢大家,我找到原因了,原来是我把DataReader转换为DataTable后再绑定{0:d}就失效了。
    不过我用ToString("yyyy-MM-dd")转化,为什么会出错,提示:参数“1” : 无法从“string”转换为“System.IFormatProvider”
    ToString("yyyy-MM-dd")转化是不是这么写,可是不行啊
    string DateStr="2004-1-1 0:00:00";
    DateStr = DateStr.ToString("yyyy-MM-dd");
      

  11.   

    在绑定的时候,必须把DataTable中对应的ColumnType设为DateTime类型,再用
    <asp:Label runat="server" ID="Label9" Text='<%# DataBinder.Eval(Container.DataItem, "ReportDate" ,"{0:yyyy-MM-dd}") %>'>就可以了。
      

  12.   

    在帮助上终于找到了,应该是
    string DateStr="2004-1-1 0:00:00";
    DateStr = DateTime.Parse(DateStr).ToString("yyyy-MM-dd");谢谢大家,结贴了
      

  13.   

    日期的列这样写试试
    <asp:BoundColumn DataField="birthdate" HeaderText="出生年月" DataFormatString="{0:D}">
    ------------------------------
    这个方法其实最简单。