2010-01-29 6 views
1

필드를 사용하여 사용자 지정 서식 파일에 표시된 날짜 형식을 수정하려고합니다. 표시하고자하는 내용은 다음과 같습니다.SharePoint에서 "최종 수정 날짜"형식 수정 : CreatedModifiedInfo

This page was last modified on 29 Jan 2010 by Joel Spolsky

(여기서 사용자 이름은 해당 프로필로 연결됩니다.)

http://mindsharpblogs.com/aaron/archive/2008/02/08/4283.aspx에서 좋은 예제를 발견 했으므로 맞춤 템플릿을 설정할 수있었습니다. 그리고 나는 MSDN documentation에있는 반원들을 들여다 보았다. 하지만 날짜 형식을 수정하는 방법을 알아낼 수 없습니다.

렌더링에 사용할 FieldValue에 "d MMM yyyy"과 같은 날짜 형식 문자열을 전달할 수있는 방법이 있습니까?

이것은 날짜 형식을 제외하고는 현재 작동하는 코드입니다 (29/01/2010 19:22). 이는 사용자에게 친숙하지 않습니다.

<SharePoint:CreatedModifiedInfo ControlMode="Display" runat="server"> 
     <CustomTemplate> 
      This page was last modified on 
      <SharePoint:FieldValue FieldName="Modified" runat="server" ControlMode="Display" DisableInputFieldLabel="true"/> 
      by 
      <SharePoint:FormField FieldName="Author" runat="server" ControlMode="Display" DisableInputFieldLabel="true" /> 
     </CustomTemplate> 
</SharePoint:CreatedModifiedInfo> 

답변

0

약간 다른 해결책을 발견했습니다. 나는 100 % 행복하지는 않지만 꽤 간단합니다. 이것은 내가 읽은 해결책을 기반으로했습니다 : http://panvega.wordpress.com/2009/03/16/masterpagepagelayout-format-date-field/

"Calculated"유형의 라이브러리에서 사용자 정의 열을 만들고 원하는 날짜 형식을 지정합니다. 의미 내 경우 :

=TEXT(Modified,"d MMM yyyy") 

그런 다음 페이지 레이아웃에 난 그냥이 필드를 참조하고 형식은 이미 이루어집니다 :

<SharePointWebControls:CalculatedField ID="CalculatedField" FieldName="Display Date" runat="server" /> 

그것은 우아한 해결책은 내가 주로 때문에 찾고 있었던 것처럼 아니다 모든 페이지 라이브러리에 사용자 정의 열을 추가해야합니다. 그러나 아주 적은 코드 만 필요합니다.

저는 아직 더 나은 해결책을 찾고 있습니다. 날짜를 형식화하기 위해 전체 웹 컨트롤을 작성해야하는 것이 이상하게 보일 수도 있지만 더 나은 유일한 대안 일 수도 있습니다.

0

직접 항목 필드 값을 호출하여 형식을 지정할 수 있다고 생각합니다. 아래의 코드를 시도해 헤더에 import tag를 추가하십시오.

<%@ Import Namespace="Microsoft.SharePoint" %> 
... 
<SharePoint:CreatedModifiedInfo ControlMode="Display" runat="server"> 
    <CustomTemplate> 
     This page was last modified on 
     <%=SPContext.Current.ListItem["Modified"]==null?"":((DateTime)SPContext.Current.ListItem["Modified"]).ToString("d MMM yyyy")%> 
     by 
     <SharePoint:FormField FieldName="Author" runat="server" ControlMode="Display" DisableInputFieldLabel="true" /> 
    </CustomTemplate> 
</SharePoint:CreatedModifiedInfo> 
+0

답변 주셔서 감사합니다. 그러나 이것은 저에게 효과적이지 않습니다. 이 SharePoint 디자이너에서 붙여 넣으려고 할 때 그 허용되지 않는 squiggly 줄을 제공합니다 및 다음 오류가 발생합니다. "코드 블록이이 파일에서 허용되지 않습니다" 그래서 그것은 페이지 레이아웃 파일에서 인라인 코드를 사용할 수 없습니다. 다른 아이디어? –

+0

나는 당신이 controltemplat을 편집하고 있다고 생각하고, 디자이너 인라인 코드에서 허용하지 않습니다. 대안을 제안 할 수 있습니다 - 자신의 웹 컨트롤을 작성하고 페이지에 포함 시키거나 controltemplates의 제어 템플릿을 재정의하거나 클라이언트 측에서 javascript로 문자열을 포맷하십시오. –