2011년 4월 3일 일요일

Field Name, InternalName, StaticName, DisplayNane, _x0020_

Custom Field정의에 대해서 알아 보겠습니다.

Custom Field를 정의 할 때 필수 attribute는 Name, Type, ID 입니다.

ID는 “{}”로 둘러 싸인 GUID값이고, Type은 SharePoint에서 사용 가능한 Type입니다.

MSDN의 File element reference

<Field ID="{1511BF28-A787-4061-B2E1-71F64CC93FD5}"
Name="DateOpened"
DisplayName="Date Opened"
Type="DateTime"
Format="DateOnly"
Required="FALSE"
Group="Financial Columns">
<Default>[today]</Default>
</Field>

Field를 customize할 때 가장 유의 해야 할 부분은 바로 Name 속성입니다.


Name


Name은 SPField 개체를 통해 InternalName 속성로 노출 하는 값으로써 Site내에서 Unique 하고 0-9 숫자와 알파벳 글자만을 사용 할 수 있습니다. 만약 다른 캐릭터가 오면 _x0000_ 형태로 인코딩을 해버립니다. 즉, “File Type” 이라는 이름은 “File_x0020_Type”으로 바꾸는 것이죠. 이건 한글 필드이름일 때는 더욱 문제가 됩니다. 디코딩을 해보기 전까지는 전혀 어떤 글자인지 모를 이름이 “InternalName”에 들어가 있는 것입니다. 그리고 마지막으로 주의해야 할 것은 이름의 글자수가 32자리 라는 것입니다. 이상 넘어가는 글자는 그냥 잘라 먹습니다.


StaticName


StaticName은 별도로 지정하지 않으면 Name 값이 동일하게 들어 갑니다. InternalName은 읽기 전용이라 field 생성 후 변경이 불가능 하지만 이 StaticName은 API를 통해 변경이 가능합니다. 이 속성은 SPFieldCollection.GetField()  메서드에서 해당 field를 찾아 올 때 InternalName과 함께 사용 할 수 있습니다.


image


DisplayName


DisplayName은 UI에서 노출 되는 field 이름입니다. 당연히 공백을 포함 모든 캐릭터를 사용 할 수 있습니다.


결론


Name 속성은 무조건 공백없는 알파벳, 숫자로 만들어야하고 32자를 넘지 말아야 합니다. StaticName은 별도록 지정 말고 Name과 같이 사용하는 것이 좋습니다.

댓글 없음:

댓글 쓰기