2012-03-01 6 views
0

ドキュメントライブラリでは、私は、カスタム計算列が必要です。SharePoint 2010の - デフォルトExcelの数式は、私が必要とする機能を提供していないため、カスタム計算列

私はその後、意のままにカスタマイズすることができることを、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プロパティの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

関連する問題