Sharepoint自定义字段渲染图案:渲染到多个字段

时间:2013-01-21 09:14:45

标签: sharepoint custom-fields custom-field-type

初步问题

我可以将数据从一个字段渲染为多个列吗?

背景

我创建了一个自定义字段,其中包含一个下拉列表和两个文本框。我们的想法是,用户可以从下拉列表中选择与供应商列表相关联的供应商。这将获取供应商的联系人姓名和号码,并填写相应的文本框。

我这样做是因为能够覆盖联系号码和地址很重要,但客户希望看到默认值。

看看它的样子:

enter image description here

在保存新条目时,字段的值保存如下:

;#1; #Supplier 1; #Contact Name;#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>

这允许我将数据呈现给最终用户,如下所示:

enter image description here

问题

我希望能够在单独的列中显示此拆分数据。我注意到SharePoint使用的内置标题字段有四种类型的列,您可以将这些列添加到单个字段的视图中。我正在尝试重现这种功能,因此可以在视图中添加或删除数据的每个部分。这可能吗?

1 个答案:

答案 0 :(得分: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

更有效的方法。