如何将名为“Type(图标链接到文档)”的文档库列添加到列表视图中?

时间:2010-04-19 07:55:56

标签: sharepoint icons

我正在使用列表视图。我希望列的外观类似于名为“Type(图标链接到文档)”列的文档库列。我还应该能够设置此超链接图标应该打开的路径。我尝试了很多现有的网站专栏,但仍然无法弄清楚如何做到这一点。有没有人早先实现过这个。请分享您的专长。提前谢谢。

1 个答案:

答案 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>")
    • 将{0}替换为您在方括号中创建的文本字段的名称。所以,如果你把它称为“Path”,那么它应该是[Path]。
    • 将{1}替换为图标的图片源网址。如果图像有多个选项,则必须添加另一个文本字段以指定图像URL,或使用一些IF逻辑。检查this article以获取计算列公式的语法以设置该逻辑。

将计算列添加到列表视图中。现在,当填写文本字段时,您将获得图像链接。


希望这两个中至少有一个有帮助!