문제

SharePoint 게시 사이트를 개발하고 콘텐츠 유형 및 페이지 레이아웃을 설정하고 있습니다. 유형 번호로 1 년 필드의 값을 표시해야합니다. 현재 마크 업은 다음과 같습니다.

<SharePointWebControls:NumberField FieldName="Year" runat="server" id="Year" />

기본 동작의 문제점은 "2009"대신 "2,009"(예 : "2,009")로 각 숫자를 표시한다는 것입니다. 필드에 어떤 종류의 문자열을 설정할 수있는 방법이 있습니까? 필드에 올바르게 표시되도록하십시오.

나는 다음과 같은 것처럼 보이는 새로운 렌더링 템플릿을 만들려고 노력했다.

<SharePoint:RenderingTemplate ID="YearNumberField" runat="server">
  <Template>
    <SharePoint:FormField ID="TextField" runat="server"/>
  </Template>
</SharePoint:RenderingTemplate>

... 그러나 Formfield 객체에 '형식'속성이없는 것으로 보입니다.

도움을 주셔서 감사합니다.

업데이트:

SharePoint : FormattedString 내부에서 SharePoint : Formfield 태그를 래핑하려고했습니다. 불행히도 필드는 형식화되지 않았으며 이 질문.

도움이 되었습니까?

해결책

문제는 렌더링 템플릿이 Formfield를 사용해야한다는 것입니다. 이것은 항상 형식의 값을 렌더링합니다. 1,989. 이를 해결하려면 원하는 출력을 얻으려면 렌더링 된 텍스트를 갇히고 변경해야합니다. 이것을 해결하기위한 두 가지 접근법은 다음과 같습니다.

1. Numberfield에서 상속 된 사용자 정의 컨트롤을 작성하십시오

RenderFieldFordisplay 및 RenderFieldForInput 방법을 재정의하여 원하는 출력을 제공 할 수 있습니다. 추가 동작을 설명하기 위해 추가 속성을 컨트롤에 추가 할 수 있습니다.

장점 : 렌더링 템플릿에 대한 변경 사항이 필요하지 않습니다.

2. 렌더링 템플릿에서 사용하기위한 사용자 정의 컨트롤 작성

(예를 들어) 정규 표현식을 사용하여 텍스트를 변경하는 컨트롤은 Formfield 컨트롤을 포장 할 수 있습니다.

<SharePoint:RenderingTemplate ID="YearField" runat="server">
    <Template>
        <RX:RegexManipulatorControl runat="server"
                Mode="Replace"
                Expression=","
                Replacement="">
            <SharePoint:FormField runat="server"/>
        </RX:RegexManipulatorControl>
    </Template>
</SharePoint:RenderingTemplate>

장점 : 모든 유형의 필드에는 일반 솔루션을 사용할 수 있습니다.

다른 팁

~에서 또 다른 SharePoint 블로그

SharePoint 디자이너에서 목록보기를 엽니 다.

데이터보기 웹 부분을 마우스 오른쪽 버튼으로 클릭하십시오. (목록)

XSLT 데이터보기로 변환을 선택하십시오

포맷하려는 번호 필드를 클릭하십시오.

a>는 데이터 필드를 표시하는 것으로 나타납니다.

아래 링크를 클릭하여 형식 - 숫자 형식 옵션을 클릭하십시오.

옵션 아래에서 선택 해제 1000 분리기를 사용하십시오

확인을 클릭하십시오

변경 사항을 저장하고 F12를 눌러 미리보기

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top