2011-12-06 47 views
1

我有一个gridview用于跟踪截止日期。我有两个日期herefor。预计日期(截止日期应该完成的日期)和实际日期(截止日期完成日期)。现在在我的数据库中,所有预期的日期都有值,因为它们的目的是在每个月的同一日期左右完成。但实际日期是空白的。C#ASP.NET - 日历控件 - 指定的强制转换无效

这给了我下面的错误是由于空值:Exception Details: System.InvalidCastException: Specified cast is not valid.

现在我找到的东西,而寻找在互联网上,这是调用一个辅助方法(见selectedDate属性 - 我复制到的相同的值选择日期到VisibleDate,因为否则我有相同的错误)但是这给我带来了另一个错误,那就是我无法获得新选定的值!

<asp:TemplateField HeaderText="Actual Date" SortExpression="Actual_Date"> 
    <EditItemTemplate> 
     <asp:Calendar ID="Calendar2" runat="server" VisibleDate='<%# Bind("Actual_Date") %>' SelectedDate='<%# FixNullDate(Eval("Actual_Date")) %>'></asp:Calendar> 
    </EditItemTemplate> 
    <ItemTemplate> 
     <asp:Label ID="Label2" runat="server" 
      Text='<%# Bind("Actual_Date", "{0:d}") %>'> 
     </asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

这是我从我的TemplateField的实际日期

请帮帮忙,我有点失去了代码:P

回答

1

你需要检查空:

<%# string.IsNullOrEmpty(Bind("Actual_Date").ToString()) ? "0000-00-00 00:00:00.000": Bind("Actual_Date").ToString() %>