Проблема с отображением значений пользовательских свойств для типов пользовательских полей SharePoint - PullRequest
1 голос
/ 03 марта 2009

Я пытаюсь создать настраиваемый тип поля в SharePoint (WSS 3.0), который имеет настраиваемые свойства. Я создал свой файл fldtypes * .xml на основе документов SDK и этого сообщения в блоге , и, похоже, он отображается нормально, и я могу получить значения пользовательских свойств внутри своего кода. Моя проблема заключается в том, что после первоначального создания поля, если я вернусь на страницу настроек списка и нажму на только что добавленное поле, форма показывает мои пользовательские свойства с некоторым значением, которое я не предоставляю. Например, если отображаемое имя моего настраиваемого свойства «My Custom Prop», то значение в его текстовом поле будет «Значение поля My Custom Prop».

У меня такой вопрос: как правильно отобразить фактические строковые значения моих пользовательских типов свойств в этих текстовых полях?

Вот мой файл fldtypes * .xml:

<?xml version="1.0" encoding="utf-8"?>
<FieldTypes>
  <FieldType>
    <Field Name="TypeName">MyCustomField</Field>
    <Field Name="TypeDisplayName">My Custom Field</Field>
    <Field Name="TypeShortDescription">MyCustomField</Field>
    <Field Name="ParentType">Text</Field>
    <Field Name="UserCreatable">TRUE</Field>
    <Field Name="FieldTypeClass">MyCustomField.CustomFields.MyCustomField, MyCustomField, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d772gbab82fe6996</Field>
    <PropertySchema>
      <Fields>
        <Field Name="MyCustomProp" DisplayName="My Custom Prop" Type="Text" MaxLength="50" DisplaySize="30" />
      </Fields>
    </PropertySchema>
  </FieldType>
</FieldTypes>

А вот код для моего класса типа поля:

public class MyCustomField : SPFieldText
{
    private string propval;

    public MyCustomField(SPFieldCollection fields, string fieldName)
        : base(fields, fieldName)
    {
    }

    public MyCustomField(SPFieldCollection fields, string typeName, string displayName)
        : base(fields, typeName, displayName)
    {           
    }

    public override void Update()
    {
        // I can see any updated value here
        propval = GetCustomProperty("MyCustomProp") as string;
        base.Update();
    }

    public override Type FieldValueType
    {
        get { return typeof (string); }
    }

}

Что можно сделать, чтобы увидеть правильные значения настраиваемых свойств на моей странице «Изменить столбец» (FldEditEx.aspx) в моем приложении SharePoint?

1 Ответ

1 голос
/ 04 марта 2009

Существует хорошо известная проблема с сохранением и получением пользовательских свойств для типа настраиваемого поля. Вот прямая ссылка на работу вокруг .

Кстати, некоторые комментарии к посту подразумевают ту же проблему.

...