1

最初的问题

我可以将一个字段中的数据渲染成多列吗?

背景

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

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

这是它的样子:

在此处输入图像描述

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

;#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 使用的内置标题字段有四种类型的列,您可以将它们添加到单个字段的视图中。我正在尝试重现这种功能,以便可以从视图中添加或删除数据的每个部分。这可能吗?

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 回答