我正在使用Designer 2013在SP2013中自定义NewForm.aspx。我正在努力从SharePoint Designer 2013中的XSLT列表视图Web部件获取列值。我需要使用JQuery中的列来操作以执行某些操作(如隐藏,禁用等等。)。目前,我通过悬停在它上面的开发人员工具获取列ID,但这不是正确的方式,因为ID将在质量/生产中发生变化。 例如: -
$("#ctl00_ctl33_g_1ea47d6f_1fed_4426_8e49_cda9970429d6_ff21_ctl00_ctl00_TextField").val("Close");
我想要的东西: -
$("#column2").val("Close");
我在SP Designer 2013中的XSLT如下所示: -
<tr><td>
<H3>column2</H3>
</td>
<td>
<SharePoint:FormField runat="server" id="ff3{$Pos}" ControlMode="Edit"
FieldName="column2" __designer:bind="
{ddwrt:DataBind('u',concat('ff3',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@column2')}"/>
<SharePoint:FieldDescription runat="server" id="ff3description{$Pos}" FieldName="column2" ControlMode="Edit"/>
</td>
</tr>
请协助。
答案 0 :(得分:0)
标准的ASP.NET行为是服务器控件的ID不是表示控件的HTML元素的ID。许多DIV和SPAN都会呈现许多SharePoint控件(特别是人,格式化文本等列)。因此,阅读和设定它们的价值是一个非常复杂的过程。
通常,您可以使用title属性来搜索包含特定字段的HTML元素的HTML标记。标题属性包含字段的名称。对于必填字段,它还包含所需信息。或者,您可以尝试搜索ID以字段内部名称开头的元素。但在这两种情况下,您都需要添加一些额外的逻辑来查找包含该字段值的正确控件。逻辑将需要反映您正在寻找的字段类型。
最简单的方法是使用某些库(如SPJSutility或form designer)来处理表单字段。
通过将enabled属性设置为false,您甚至无法禁用最简单的文本框,因为在这种情况下,该值不会在服务器上处理。