我需要能够修改asp GridView行中的开始/结束日期。除了更新空日期的功能之外,我还有其他工作。我们有开始和结束日期,开始日期是强制性的,但是结束日期是可选的,因此当它们显示在GridView行中时,如果没有输入结束日期,则结束日期只是空白,但是当他们更新该行时,我想如果结束日期为空,则结束日期输入字段将显示为“ dd / mm / yyyy”(与u调用不输入值的日期输入时相同)。有谁知道这是否有可能,如果没有,建议解决办法?我可以在FormatDate中截取一个空值,然后将其转换为最小日期或最大日期,然后在他们更新行时将其转换回空值,但它相当笨拙。
我尝试传递空字符串和null,但是两者都会导致崩溃。 (CalendarCombo只是围绕TextBox的薄包装)
<EditItemTemplate>
<cc1:CalendarCombo ID="EndDateUpdate" Nullable="True"
Value='<%# Eval("EndDate", "{0:yyyy-MM-dd}") %>'
runat="server" type="date" AutoPostBack="True"/>
</EditItemTemplate>
和
<EditItemTemplate>
<cc1:CalendarCombo ID="EndDateUpdate" Nullable="True"
Value='<%# FormatDate(DataBinder.Eval(Container.DataItem, "EndDate"))%>'
runat="server" type="date" AutoPostBack="True"/>
</EditItemTemplate>
FormatDate在哪里(对VB抱歉;它的旧代码)
Public Function FormatDate(ByVal dateFromDb As Object) As String
If dateFromDb.GetType() Is GetType(DBNull) Then
Return Nothing
End If
Dim d As Date = CType(dateFromDb, Date)
Return d.ToString("yyyy-MM-dd")
End Function
当EndDate为空/无时,我希望输入日期字段显示为“ dd / mm / yyyy”。