2012-03-01 121 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的項目屬性或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 2012-03-02 12:45:02