我正在使用列表视图。我希望列的外观类似于名为“Type(图标链接到文档)”列的文档库列。我还应该能够设置此超链接图标应该打开的路径。我尝试了很多现有的网站专栏,但仍然无法弄清楚如何做到这一点。有没有人早先实现过这个。请分享您的专长。提前谢谢。
答案 0 :(得分:0)
就开箱即用功能而言,您无法直接实现此类列。 Type(链接到文档的图标)使用计算字段类型。设置这些,特别是为了这个简单的目标,非常复杂,需要部署解决方案。但是,还有其他方法可以实现这一目标。
你想要实现的基本功能基本上是链接图片。 URL字段的超链接功能和图片功能的组合。您可以采用两种方法,无需部署解决方案即可完成。我会列出两者,你可以尝试任何一种或两种,你觉得更符合你的口味。
选项一:网址字段修改
这涉及更改SharePoint服务器上12个配置单元中的FLDTYPES.XML。当然,建议您在执行此操作之前备份当前文件。 FLDTYPES.XML位于\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 12 \ TEMPLATE \ XML。此更改将允许我们使用SharePoint UI中的默认URL字段,在配置为显示HyperLink时,在特定情况下显示图片。
将文件备份为FLDTYPES.OLD或者有什么内容后,在文本编辑器中打开FLDTYPES.XML并搜索URL字段。行<Field Name="TypeName">URL</Field>
将在开头,所以只需搜索它。现在,在大型字段中定义将是一个字段切换。除了我现在手动添加的评论外,它看起来如下。
<FieldSwitch>
<Expr><Property Select="Format"/></Expr>
<Case Value="Image">
<FieldSwitch>
<Expr><Property Select="Width"/></Expr>
<Case Value="">
<HTML><![CDATA[<IMG SRC="]]></HTML><Column HTMLEncode="TRUE"/><HTML>" ALT="</HTML><Column2 HTMLEncode="TRUE"/><HTML><![CDATA[">]]></HTML>
</Case>
<Default>
<HTML><![CDATA[<IMG SRC="]]></HTML><Column HTMLEncode="TRUE"/><HTML>" ALT="</HTML><Column2 HTMLEncode="TRUE"/><HTML><![CDATA[" WIDTH="]]></HTML><Property Select="Width"/><HTML><![CDATA[" HEIGHT="]]></HTML><Property Select="Height"/><HTML><![CDATA["> ]]></HTML>
</Default>
</FieldSwitch>
</Case>
<Default>
<HTML><![CDATA[<A HREF="]]></HTML><Column HTMLEncode="TRUE"/><HTML><![CDATA[">]]></HTML>
<Switch>
<Expr><Column2/></Expr>
<Case Value="">
<Column HTMLEncode="TRUE"/>
</Case>
<Default>
<Column2 HTMLEncode="TRUE"/> <!-- This is where we work -->
</Default>
</Switch>
<HTML><![CDATA[</A>]]></HTML>
</Default>
</FieldSwitch>
现在,我们想要在我发表评论的行上替换<Column2 HTMLEncode="TRUE"/>
。这是URL字段设置为HyperLink时显示的逻辑,并填写说明,目前只显示该说明。我们想要更改它,以便当此描述是图像的URL时,它将显示该图像。以下是我使用的示例。
<Switch>
<Expr>
<GetFileExtension>
<Column2/>
</GetFileExtension>
</Expr>
<Case Value="pnG">
<HTML><![CDATA[<IMG STYLE="border:0" SRC="]]></HTML>
<Column2 HTMLEncode="TRUE"/>
<HTML><![CDATA[">]]></HTML>
</Case>
<Default>
<Column2 HTMLEncode="TRUE"/>
</Default>
</Switch>
基本上,它将描述视为文件名,检查它是否具有扩展名,并且在匹配的情况下,它将其呈现为没有边框的图像。现在,我使用pnG,因为这个switch-case比较区分大小写,但是图像的源url不是。因此,当我创建一个字段并将描述指定为“/_layouts/images/FlagRed.pnG”时,它将显示我已保存为“/_layouts/images/FlagRed.png”的FlagRed图片。这样,当我想显示一个实际的图像文本网址时,我就不能把这个结果大写。当然,您必须用case语句中的“pnG”替换您使用的任何文件扩展名,并在有更多文件时添加额外的案例。完成后保存文件。
在完成所有设置之后,在计算机上运行IISRESET。完成后,您的URL字段现在将能够呈现图像链接。创建新URL字段时,您只需将其指定为HyperLink类型,将目标链接作为URL,并将图像源URL作为描述。将URL列添加到列表视图中的方式与使用任何其他字段类型的方式相同。
选项二:计算的HTML字段
您可以在内容编辑器Web部件中使用某些javascript,而不是弄乱服务器。基本上,使用列表视图在页面上插入内容编辑器Web部件,确保它位于列表视图下方。通过在此CEWP中输入脚本,您可以运行它来更改列表视图的显示。在这种特殊情况下,我们使用一个脚本,允许HTML在计算列中呈现为HTML。
以下内容应包含获取脚本所需的所有资源:Using Calculated Columns to Write HTML。这里有很多阅读,但是你可以从实现这个脚本中获得很多潜力,所以我推荐它。当您最终使用脚本设置CEWP时,我们将需要列表中的两个字段。
=CONCATENATE("<a href='",{0},"'><img src='",{1},"' style='border:0' /></a>")
将计算列添加到列表视图中。现在,当填写文本字段时,您将获得图像链接。
希望这两个中至少有一个有帮助!