3

組み込みのChoiceフィールドタイプを拡張して、別のデータ、つまり正解を含めようとしています。これにより、ユーザーは、InfoPathやその他の複雑なソリューションを使用する代わりに、Sharepoint内で直接独自のテストを作成できるようになります。既存のSPFieldChoiceタイプを継承し、入力された選択肢からの正解を表す整数を保持するカスタムプロパティをもう1つ追加したいと思っていました。

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私のカスタムプロパティ

Choiceフィールドタイプのように選択肢を追加するオプションはありません:( ソース:mudman.us組み込みのChoiceフィールドタイプのカスタム複数行テキストプロパティ

(a)Choice列に既存のカスタムプロパティを使用して指定した追加のプロパティを追加するか、(b)複数行のテキストカスタムプロパティを具体的に定義するようにSharepointに指示するには、fldTypes_.xmlに何を入力する必要がありますか?

4

1 に答える 1

2

Choice入力ボックスはSPFieldChoice列専用に作成されているように見えます。多くの継承できない機能の1つ。これは、SharePointを説得してカスタムフィールドタイプに再現させることができない可能性があることを意味します。

私のアドバイスは、オプションb)を選択し、自分で作成することです。これを要素に追加すると、<fields>うまくいくと思います。

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

私はこのソリューションの信頼性をテストしていないことに注意してください。独自のフィールドエディタコントロールを作成するという、とがった不快なルートをたどる必要があるかもしれません。

于 2011-02-23T20:10:23.180 に答える