ASP.NET 인라인 스크립팅
문제
맞춤형 그리드 컨트롤로 인쇄 해야하는 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();
}
제휴하지 않습니다 StackOverflow