1

最初の質問

1 つのフィールドのデータを複数の列にレンダリングできますか?

バックグラウンド

ドロップダウン リストと 2 つのテキスト ボックスを含むカスタム フィールドを作成しました。アイデアは、ユーザーがサプライヤのリストに接続されているドロップダウン リストからサプライヤを選択できるということです。サプライヤーの連絡先の名前と番号を取得し、対応するテキストボックスに入力します。

連絡先番号と住所を上書きできることが重要ですが、クライアントはデフォルトを確認したいので、このようにしました。

これは次のようになります。

ここに画像の説明を入力

新しいエントリを保存すると、フィールドの値は次のように保存されます。

;#1;#サプライヤー 1;#連絡先名;#01234 567890;#

これにデータを保存することにしたのは、レンダリング時に複数列フィールドのように扱えるようにするためです。

以下のコードを使用してデータを分割し、リスト ビューの表示パターンをオーバーライドしています。

 <RenderPattern Name="DisplayPattern">
  <Switch>
    <Expr>
      <Column />
    </Expr>
    <Case Value="" />
    <Default>
      <!--<Column SubColumnNumber="0" HTMLEncode="TRUE" />
      <HTML><![CDATA[<br/>]]></HTML>-->
      <Column SubColumnNumber="1" HTMLEncode="TRUE" />
      <HTML><![CDATA[ - ]]></HTML>
      <Column SubColumnNumber="2" HTMLEncode="TRUE" />
      <HTML><![CDATA[ - ]]></HTML>
      <Column SubColumnNumber="3" HTMLEncode="TRUE" />
      <HTML><![CDATA[]]>]></HTML>
     </Default>
  </Switch>
</RenderPattern>

これにより、次のようにデータをエンド ユーザーに提示できます。

ここに画像の説明を入力

質問

この分割されたデータを別々の列に表示できるようにしたいと思います。SharePoint が使用する組み込みのタイトル フィールドには、1 つのフィールドのビューに追加できる 4 種類の列があることに気付きました。この種の機能を再現して、データの各セクションをビューに追加または削除できるようにしています。これは可能ですか?

4

1 に答える 1

0

リスト アイテムにアクセスできることがわかりました。つまり、UpdateFieldValueInItem メソッドをオーバーライドすることで、リスト アイテム内のフィールドを追加するだけで済みました。

 Public Overrides Sub UpdateFieldValueInItem()
    Me.ItemFieldValue = ddlSupplier.SelectedItem.Value
    If Me.Item.Fields.ContainsField(Me.Field.InternalName & "-" & "Telephone") Then
        Me.Item(Me.Field.InternalName & "-" & "Telephone") = txtTelephone.Text
    End If
End Sub

これを行うためのはるかに効果的な方法。

于 2013-03-20T16:47:28.417 に答える