在文档库中,我需要一个自定义计算列,因为默认的Excel公式没有提供我需要的功能。
我创建了一个从SPFieldText继承的自定义字段,然后可以随意自定义。问题是:如何从我的自定义字段访问文档库其他字段的内容值?
在另一种情况下,在overriden 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
}
}
谢谢!
您应该能够使用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();
}
其中"名称"是要检索的字段的内部名称。