3

我正在尝试扩展内置的选择字段类型以包含另一条数据:正确答案。有了这个,用户将能够直接在 Sharepoint 中创建自己的测试,而不必使用 InfoPath 或其他一些复杂的解决方案。我希望只继承现有的 SPFieldChoice 类型并添加一个自定义属性来保存一个整数,该整数表示输入的选项中的正确答案。

我有一个继承自 SPFieldChoice 的 FieldTestQuestion 类以及一个继承自 RadioButtonChoiceField 的非常基本的 TestQuestionFieldControl 类。我的 fldtypes_TestQuestionField.xml 文件:

  <FieldTypes>
    <FieldType>
        <Field Name="TypeName">TestQuestion</Field>
        <Field Name="ParentType">Choice</Field>
        <Field Name="TypeDisplayName">Test Question (Multiple choice)</Field>
        <Field Name="TypeShortDescription">Test Question (Multiple choice)</Field>
        <Field Name="UserCreatable">TRUE</Field>
        <Field Name="ShowInColumnTemplateCreate">TRUE</Field>
        <Field Name="FieldTypeClass">MyCustomFieldTypes.FieldTestQuestion,MyCustomFieldTypes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=****</Field>
        <PropertySchema>
            <Fields>
                <Field Name="CorrectAnswer" DisplayName="Correct answer (line number)" Type="Integer">
                    <Default></Default>
                </Field>
            </Fields>
        </PropertySchema>
    </FieldType>
  </FieldTypes>

不幸的是,当我尝试添加这种类型的列时,这就是呈现的内容:( 来源:mudman.us我的自定义属性

没有添加选项的选项,就像选择字段类型一样:( 来源:mudman.us内置选择字段类型上的自定义多行文本属性

我需要在我的 fldTypes_.xml 中添加什么来告诉 Sharepoint (a) 使用 Choice 列的现有自定义属性并添加我指定的额外属性或 (b) 专门定义多行文本自定义属性?

4

1 回答 1

2

似乎选择输入框是专门为 SPFieldChoice 列创建的;许多不可继承的功能之一。这意味着您不太可能说服 SharePoint 为您的自定义字段类型复制它。

我的建议是选择选项 b),然后自己创建。我相信将其添加到<fields>元素中可以解决问题:

<Field Name="ChoiceFix" DisplayName="Type each choice on a separate line:" Type="Note" />

请注意,我尚未测试此解决方案的可靠性,您可能不得不走上尖刺且令人不快的路线来制作自己的字段编辑器控件。

于 2011-02-23T20:10:23.180 回答