2011-03-11 3 views
4

내 사용자 지정 양식에서 사용자 지정 Guid 필드를 표시하려고합니다. Sharepoint Guidfield - 프론트 엔드에 표시하고 코드의 값을 설정하는 방법은 무엇입니까?

나는 일반적인 방법으로 기능을 통해 필드를 생성 :

<Field ID="88813c02-799b-4fc8-8ed8-72fe668e257c" Type="Guid" 
               Name="myGuid" 
               StaticName="myGuid" 
               DisplayName="My Guid" /> 

내가 먼저 폼의 코드와 디스플레이를 통해 설정하려면이 필드. - 단순히 비어

<SharePoint:GuidField runat="server" ID="myGuidField" FieldName="myGuid" /> 
<SharePoint:TextField runat="server" ID="myTitle" FieldName="Title" /> 

의 GUID 필드가 정기적으로 새로 만들기/편집 양식에 표시되지 않습니다 형태에 나는 다음과 같은 제어 (참조 나는 또한 제목 필드를 포함)가 있습니다. 그래서 어떻게 든 '

string anotherValue = myGuidField.Value; //--> null 
Guid myGuid = new Guid("7f824c3f-4049-4034-a231-85291fce2680"); 
myGuidField.Value = myGuid; 
string anotherValue = myGuidField.Value; //--> still null 
//but myGuidField is seen as a "Microsoft.Sharepoint.WebControls.GuidField" 

: - 어떻게 든 할 수 없습니다

myTitle.Value = "Some Title Value"; 
string testValue = myTitle.Value; //-->"Some Title Value" 

하지만 가이 필드의 값을 설정하려고 할 때 : 사용자 지정 양식의 뒤에있는 코드에서 나는 다음과 같은 작업을 수행 할 수 단지 프로그래밍 방식으로 Guid 값을 설정할 수 없으며 Guid 만 표시 할 수 없습니다.

두 질문 :

  1. 어떻게 GuidField합니다 (GUID에 포함)를 표시하는 형태에?
  2. 어떻게 재산을 BaseFieldControl의 Value을 무시하지 않는 GuidField

답변

8

GuidField의 값을 설정하고이 속성은 항상 null 아무것도이 필드 제어 설정으로 돌아갑니다. GuidField의 기본 구현에는 DisplayTemplates가 없으며이 필드 컨트롤을 사용자 정의 또는 표준 양식에 배치하면 필드가 값을 설정하기위한 html 요소를 렌더링하지 않습니다. 수동으로 설정해야하는 필드의 값입니다. 사용자 정의 값을 사용 ItemFieldValue을 설정하려면

myGuidField.ItemFieldValue = new Guid("7f824c3f-4049-4034-a231-85291fce2680"); 

하거나

item["myGuid"] = new Guid("7f824c3f-4049-4034-a231-85291fce2680"); 

당신이 (그러나 대부분의 경우에 필요하지 않을 것) 작은 사용자 정의 필드 제어를 작성하거나하려고 UI 양식에 GUID를 편집하려면

codeplex에 대한 검색 (상자 솔루션이 없다는 것을 알고 있습니다).

+1

당신에게 더 많은 upvotes를주는 것을 좋아했을 것입니다. 완벽한 설명! –

+0

+1 moontear의 추가 upvote. –

+0

감사합니다. 기꺼이 도와 줬어. – Ilya

관련 문제