2011-04-27 4 views
11

그리드보기에서 날짜를 보여주기 위해 타임 스탬프를 포맷합니다 이 같은 :방법 만이 같은 레이블을 결합하고 aspx 페이지에서

4/12/2011 12:00:00 AM  
4/4/2011 12:00:00 AM 

톤 방법을 제안하십시오 :

GridView1.DataSource = dt2; 
GridView1.DataBind(); 

그러나 gridview에 열이 같은 날짜를 표시 (최소 코드가 주어집니다) o 시간 소인 부분을 제거하고 날짜 부분 만 표시하십시오.

ToString 및 SubString을 사용하여 서식을 지정하는 방법을 알고 있습니다. 그러나 나는 gridview에서 이것을 할 수 없다.

답변

8

코드 숨김에 FormatDate 메서드를 만들고 해당 gridview에서 호출하십시오.
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
http://www.csharp-examples.net/string-format-datetime/

이 부분은

private object FormatDate(DateTime input) 
{ 
    return String.Format("{0:MM/dd/yy}", input); 
} 

뒤에 코드에 갈 것이다 그리고이 비트가 마크 업

<asp:TemplateField HeaderText="Date of Joining"> 
     <ItemTemplate> 
      <asp:Label ID="Label6" runat="server" Text='<%# FormatDate(Eval("date_of_joining")) %>'></asp:Label> 
     </ItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="Paid Priviledge Date"> 
     <ItemTemplate> 
      <asp:Label ID="Label8" runat="server" 
       Text='<%# FormatDate(Eval("paid_priviledge_date")) %>'></asp:Label> 
     </ItemTemplate> 
    </asp:TemplateField> 

이 갈 것이다 나는에 D.R.Y. 접근을 부를 것이다 것입니다 문제. 어떤 식 으로든 서식을 수정해야하는 경우. 코드 숨김 메소드를 간단히 편집하면 모든 마크 업에 대한 달콤한 사랑이 비춰질 것입니다.

+1

죄송합니다.이 솔루션을 뒤돌아 보았을 때 많은 시간이 지나자 ilivewithian의 답변이 가장 적합한 것으로 나타났습니다. 그러나 실제로 귀하의 답변은 가장 효율적인 답변입니다. 귀하의 답변은 다음과 같습니다. 지금 정확한 것. 실수로 죄송합니다. –

+0

마크 업에서 수행하는 경우 다시 컴파일하지 않고도 변경 작업을 수행 할 수 있습니다. – Chad

+1

@Chad, 당신의 선호가 아니기 때문에 다운 투표는 나에게 조금 이상합니다. 고양이를 껍질을 벗기는 데는 여러 가지 방법이 있습니다. 광산은 그 방법 중 하나입니다. 내가 깨끗하게 유지하기를 좋아하기 때문에 나는 마크 업에서 그것을하지 않는 것을 선호한다. 다시 컴파일하지 않으려면 App.config에서 형식 문자열을 설정하십시오. –

23

당신은 평가 문 형식 문자열을 지정할 수 있습니다

Eval("date_of_joining", "{0:dd/MM/yyyy}") 
+0

그레이트 내가 정말 유용한 답변이 이런 종류의 찾고 있었어. 많이 고마워요 –

+0

나는 이것이 옳은 대답이기 때문에 "나는 옳고 틀리다"같은 소리하고 싶지 않아요. 그러나 내 질문은 ...날짜의 형식을 변경해야 할 때 어떻게됩니까? 모든 인스턴스를 찾기 위해 모든 마크 업을 수행합니까? 코드 숨김 기능으로 설정하면 한 지점에서 변경할 수 있으며 모든 인스턴스로 전파됩니다. [DRY] (http://en.wikipedia.org/wiki/Don%27t_repeat_yourself) –

+0

공정한 점, 나는 stackoverflow 대답으로 작동하는 첫 번째 입력 유죄입니다. – ilivewithian

7

사용 "{0:d}"을 간단한 날짜 형식.

<asp:Label ID="Label8" runat="server" Text='<%# Eval("paid_priviledge_date","{0:d}") %>'/> 
1

당신은 같은 아래와 같이 설정 될 수 바운드 필드에 DataFormatString을 사용할 수 있습니다 시도 발견했다.

0
Text='<%# (Convert.ToDateTime((Eval("date_of_joining")))).ToShortDateString() %>' 

이 가장 간단한 방법은 I은 다음과 같습니다

Text='<%# Eval("paid_priviledge_date","{0:d}") %>' 

Text='<%# Eval("date_of_joining", "{0:d}") %>' 
관련 문제