2012-03-01 4 views
0

기본 Excel 수식에서 필요한 기능을 제공하지 않기 때문에 문서 라이브러리에서 사용자 지정 계산 열이 필요합니다.SharePoint 2010 - 사용자 지정 계산 열

SPFieldText에서 상속 한 사용자 정의 필드를 만들었습니다. 그런 다음 사용자 정의 할 수 있습니다. 문제는 사용자 지정 필드에서 문서 라이브러리의 다른 필드의 내용 값에 액세스하는 것이 가능하다는 것입니다.

다른 세계에서는 재정의 된 GetValidatedString 메서드에서 동일한 레코드에 대해 다른 필드의 값에 종속 된 값을 어떻게 반환 할 수 있습니까? 아래 getFieldValue() 구현 방법 :

public class MyCustomField : SPFieldText 
{ 
    .... 
    public override string GetValidatedString(object value) 
    { 
     string value1 = getFieldValue("Column-Name1"); 
     string value2 = getFieldValue("Column-Name2"); 
     return value1 + ", " + value2; // any arbitrary operation on field values 
    } 
} 

감사합니다.

답변

0

FormComponent의 Item 속성이나 ItemContext의 Item 속성을 사용하여 양식에서 다른 값을 가져올 수 있어야합니다. 이들의

하나는 FieldControl 클래스에서 작동합니다 :

코드 조각

if ((this.ControlMode == SPControlMode.New) || (this.ControlMode == SPControlMode.Edit)) 

{ 

    object obj = this.Item["Name"]; 

    if (obj != null) 

     string name = obj.ToString(); 



    object obj2 = base.ItemContext.Item["Name"]; 

    if (obj2 != null) 

string name2 = obj2.ToString(); 

} 

을 "이름"당신이 검색하고자하는 필드의 내부 이름입니다.

+0

답변 해 주셔서 감사합니다. 다른 열과 상호 작용하려면 컨트롤러 (위와 유사한 코드가 실행되는)가 필요하다는 것을 암시하는 것처럼 보입니다. 컨트롤러를 사용하는 것 이외의 다른 필드의 값에 액세스하는 방법이 필드 자체 만있는 것이 아니라는 의미입니까? – Quiche31