2012-03-01 6 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

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

Любой из них должен работать с 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» это внутреннее имя поля, которое вы хотите получить.

+0

Спасибо за ваш ответ. Вы, похоже, подразумеваете, что для взаимодействия с другими столбцами необходим контроллер (где будет работать код, аналогичный приведенному выше). Означает ли это, что нет способа, из одного только поля, получить доступ к значениям других полей, кроме как с помощью контроллера? – Quiche31

Смежные вопросы