本人利用如下代码进行日期绑定,并且将时间省去,即是只显示日期.可是,当某一项日期数据为空时,就会出错,应如何修改????谢谢..
<asp:TemplateColumn>
 <HeaderTemplate>
   訂單日期
 </HeaderTemplate>
  <ItemTemplate>
<%#Container.DataItem("wOrderDate").ToShortDateString() %>
  </ItemTemplate>
</asp:TemplateColumn>

解决方案 »

  1.   

    就用string啊,用datetime多麻烦啊.你显示的时候把他ToString(),用的时候还是用datetime不就好了?
      

  2.   

    <asp:TemplateColumn>
     <HeaderTemplate>
       訂單日期
     </HeaderTemplate>
      <ItemTemplate>
    <%# FormatTime(Container.DataItem, "wOrderDate") %>
      </ItemTemplate>
    </asp:TemplateColumn>---------------------后台写个方法
    protected string FormatTime(object item,string type)
    {
    try
    {
    DataRowView drv=(DataRowView)item;
    string val=string.Empty;
    switch (type.ToLower())
    {
    case "worderdate":
    val=drv["wOrderDate"].ToString();
    break;

    }
    }
    catch{return "";}
    }
      

  3.   

    写个函数判断一下,为空就返回空<asp:TemplateColumn>
     <HeaderTemplate>
       訂單日期
     </HeaderTemplate>
      <ItemTemplate>
    <%#Container.DataItem("wOrderDate").ToShortDateString() %>
      </ItemTemplate>
    </asp:TemplateColumn>public string formateDate(System.Data.DataRowView dv)
    {}
      

  4.   

    DataFormatString = {0:yyyy-MM-dd}
      

  5.   

    <ItemTemplate>
    <%#IsDBNull(Container.DataItem("wOrderDate")) ?Container.DataItem("wOrderDate").ToShortDateString():"" %>
      </ItemTemplate>
      

  6.   

    或者在SQL给我默认 isnull(wOrderDate,'1900-1-1')
      

  7.   

    <%#DataBinder.Eval(Container.DataItem,"etDate").Tostring()==""?"":"<%#Convert.ToDateTime(DataBinder.Eval(Container.DataItem,"etDate")).ToShortDateString()%>"%>
      

  8.   


    <%#DataBinder.Eval(Container.DataItem,"wOrderDate","YYYY/MM/DD");
    不知道可行否?