我正在使用Microsoft模板来添加培训和课程供人们注册。一切都很好,但是我想在课程列表中添加一个字段。我想添加一个字段,以指示本课程的类型类型,例如人力资源,健康与安全,管理员等。

因此,我已经搜索了有关此答案的答案,SharePoint上的文档令人震惊,我做了以下操作:

  • 设置>在课程页面上创建列。
  • 输入所有必要的详细信息
  • 在pexpform,editform和newform(.aspx)上添加 @fStaffType, Staff Type;DataFields 部分。 ((Staff Type 是字段的名称)
  • 在PENSTFORM上添加了一个新的行以显示数据:

    <tr>
        <td width="190px" valign="top" class="ms-formlabel">
           <H3 class="ms-standardheader">
               <nobr>Staff Type</nobr>
           </H3>
        </td>
       <td width="400px" valign="top" class="ms-formbody">
           <xsl:value-of select="@fStaffType"/>
        </td>
    </tr>
    
  • 在Editform和NewForm上添加了一个新的行以编辑/输入数据:

    <tr>
        <td width="190px" valign="top" class="ms-formlabel">
       <H3 class="ms-standardheader">
           <nobr>Staff Type</nobr>
       </H3>
        </td>
        <td width="400px" valign="top" class="ms-formbody">
            <SharePoint:FormField runat="server" id="ff12{$Pos}" ControlMode="New" FieldName="fStaffType" __designer:bind="{ddwrt:DataBind('i',concat('ff12',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@fStaffType')}"/>
            <SharePoint:FieldDescription runat="server" id="ff12description{$Pos}" FieldName="fStaffType" ControlMode="New"/>
        </td>
    </tr>
    

在Editform和NewForm上,我会收到错误:

错误渲染控制-FF12DESCRIPTION_1

发生了一个未经治疗的例外。你调用的对象是空的。

如果我评论说明,它将显示第一个 td (字段名),但第二个 td 只是空。

任何帮助将不胜感激!

编辑:一个相关的问题,不知道我是否应该创建一个新问题。但是马克·德·安德森(Marc D Anderson)在下面回答,我能够添加和显示一个新领域。但是,我可以完美地添加一门新课程,但是如果我编辑一个课程,并更改员工类型字段,则将在当天和时间创建一个新课程。但是,如果对其他字段进行了编辑,它们会正确编辑。

有任何想法吗?

有帮助吗?

解决方案

许多 “神话般的40”模板 具有自定义表格。 (此时您可能会辩论名称的神话般的部分。)

看来您正在大致做正确的表格中,但是很难说出它向南行驶的位置。

当您创建新列时,您是否给它一个名称为“ fstafftype”?如果没有,那就是问题。如果您将其命名为“员工类型”,则该列的内部名称(或静态名称)为“ Staff_X0020_TYPE”。 (名称中的空间将被编码。)编辑:您可以通过进入列表设置并编辑该列来找到列的静态名称。静态名称将在URL的末尾作为查询字符串参数。根据您使用的字符,它可能会划编码,例如员工%5FX0020%5ftype。

您无需将列DisplayName和staticname添加到Diatafields部分 - 坦率地说,它并没有真正明显的目的。您只需要确保SharePoint中的列名:FormField和SharePoint:FieldDescription匹配您添加的列名的静态名称。

错误中的尾随“ _1”是SharePoint在页面中给出该列的每个实例的唯一名称的一部分(您可以通过附加$ pos变量的值来允许以相同形式的多个项目进行编辑。

其他提示

看起来FF12已经在页面中的其他地方定义了,并且可能在末尾用_1重写。

  1. 您可以尝试从数据源拖放字段,然后让设计人员找出字段名称吗?

或者

  1. 您可以尝试在另一个页面中添加“自定义编辑表单”,然后复制fieldDescription?

我可能没有读过或不掌握您的需求。为什么不实施内容类型?您可以为您的自定义字段(又称列)进行功能,并设置属性,例如编辑form = true上的文凭,在view = true(等)上显示

许可以下: CC-BY-SA归因
scroll top