SharePoint 2010 - 自定义计算列

时间:2012-03-01 11:07:37

标签: sharepoint-2010 formula spfield

在文档库中,我需要一个自定义计算列,因为默认的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
    }
}

谢谢!

1 个答案:

答案 0 :(得分: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();

}

其中“Name”是您要检索的字段的内部名称。