문제

맞춤형 그리드 컨트롤로 인쇄 해야하는 DateTime 객체가 있습니다. 인쇄하려는 데이터 유형은 DD-MM-Yyyy 형식의 날짜입니다. 이 값은 채워 지거나 비워 질 수 있습니다. 그것이 채워지면 그것은 DateTime 그런 다음 기본값으로 인쇄되었습니다 ToString.

각 행마다 사용할 수 있습니다

<CellTemplate>
    <asp:Literal ID="Literal2" runat="server" Text="<%# Container.Value %>"></asp:Literal>
</CellTemplate>

그러나 이것은 날짜의 기본 긴 버전을 인쇄합니다. 형식을 원합니다 ToShortDateString().

그래서 나는 다음으로 수정을 시도했다.

<CellTemplate>
    <asp:Literal ID="Literal2" runat="server" Text="<%# Convert.ToDateTime(Container.Value).ToShortTimeString()%>"></asp:Literal>
</CellTemplate>

이것은 의도 된대로 작동합니다.

이제 빈 날짜에 문제가 있습니다.

Convert.ToDateTime()

빈 문자열에서는 기본 DateTime을 인쇄합니다.

내 ASPX 코드에서 IF 진술을 할 수있는 방법이 있습니까? Convert.ToDateTime, 빈 문자열이 아니라면?

도움이 되었습니까?

해결책

Container.Value.Length > 0 ? Convert.ToDateTime(Container.Value).ToShortTimeString() : ""

당신은 또한 통과 할 수 있어야합니다 Container.Value 당신이 정의한 범위의 모든 방법에.

다른 팁

당신은 당신의 코드에 보호 된 방법을 가질 수 있으며, 그 뒤에 당신을 확인합니다.

protected static string ConvertDate(object date) {
    if (date == null)
       return string.Empty;
    return Convert.ToDateTime(date).ToShortTimeString();
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top