将NULL传递到GridView行中的html5日期控件中

时间:2019-06-03 05:57:38

标签: asp.net date gridview

我需要能够修改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”。

0 个答案:

没有答案