SharePoint 2010 - Пользовательский вычисляемый столбец - PullRequest
0 голосов
/ 01 марта 2012

В библиотеке документов мне нужен настраиваемый вычисляемый столбец, потому что формула 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 голосов
/ 01 марта 2012

Вы должны иметь возможность получать другие значения из формы, используя свойство Item FormComponent или свойство Item ItemContext.

Любой из них должен работать из класса 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();

}

где «Имя» - это внутреннее имя поля, которое вы хотите получить.

...