2010-04-19 97 views
1

我正在使用列表视图。我想要一个列看起来类似于名为“类型(链接到文档的图标)”列的文档库列。我也应该能够设置这个超链接图标应该打开的路径。我尝试了很多与现有的网站列,但仍然无法弄清楚如何做到这一点。有没有人在早些时候实施过请分享您的专业知识。提前致谢。如何将名为“类型(链接到文档的图标)”的文档库列添加到列表视图中?

回答

0

就开箱即用功能而言,您无法直接实现这样的列。类型(链接到文档的图标)使用计算的字段类型。设置这些,特别是对于一个简单的目标来说,这是非常复杂的,并且需要部署解决方案。但是,还有其他方法可以实现这一点。

你想要达到的基本目标基本上是一个链接图片。 URL字段的超链接功能和图片功能的组合。您可以采取两种方法,无需部署解决方案即可完成此任务。我会列出两者,你可以尝试你认为更符合你的口味的那一种或两种。


方案一:URL字段的修改

这其中涉及到更改位于您的SharePoint服务器上的12蜂巢的FLDTYPES.XML。自然,建议您在执行此操作之前先备份当前文件。 FLDTYPES.XML位于\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 12 \ TEMPLATE \ XML。通过此更改,我们可以使用SharePoint UI中的默认URL字段(在配置为显示HyperLink时)在特定情况下显示图片。

将文件备份为FLK文件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字段的逻辑,并填写了说明,该说明目前只显示该说明。我们希望对其进行更改,以便当此描述是图片的网址时,它会显示该图片。以下是我使用的一个例子。

<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,因为此开关大小写比较区分大小写,但图像的源url不是。因此,当我创建一个字段并将描述指定为“/_layouts/images/FlagRed.pnG”时,它会显示已保存为“/_layouts/images/FlagRed.png”的FlagRed图片。这样,当我想要显示一个实际的图像文本url,那么我可以不用大写结尾。当然,您必须用case语句中的“pnG”替换您使用的任何文件扩展名,并在有更多的时候添加额外的案例。完成后保存文件。

之后,所有设置,在机器上运行IISRESET。一旦完成,您的URL字段现在将能够呈现图像链接。创建新的URL字段时,您需要执行的操作是将其指定为HyperLink类型,将目标链接作为URL并将图像源URL作为描述。以与使用任何其他字段类型相同的方式将URL列添加到列表视图。


方案二:计算HTML字段

而是与服务器搞乱,你可以改用一些JavaScript的一个内容编辑器Web部件。基本上,使用列表视图在页面上插入内容编辑器Web部件,确保它位于列表视图下方。通过在此CEWP中输入脚本,您可以运行它来更改列表视图的显示。这种特殊情况下,我们使用一个脚本,它允许HTML在计算列中呈现为HTML。

以下应该包含获取脚本所需的全部资源:Using Calculated Columns to Write HTML。这里有很多阅读,但是从实现这个脚本中可以获得很多潜力,所以我推荐它。当你最终用脚本设置CEWP时,我们需要在你的列表中有两个字段。

  • 其中一个是文本字段,它不会显示在您的列表视图中,但会显示在您的编辑表单中。这将是他们指定超链接路径的地方。
  • 然后,您需要创建一个以单行文本形式输出的计算列。使用类似以下的公式:=CONCATENATE("<a href='",{0},"'><img src='",{1},"' style='border:0' /></a>")
    • 将{0}替换为您在方括号中创建的文本字段的名称。所以,如果你称之为“路径”,那么它应该是[路径]。
    • 将{1}替换为图标的图像源网址。如果图像有多个选项,则必须添加另一个文本字段来指定图像url,或者使用一些IF逻辑。检查this article以获得计算列公式的语法来设置该逻辑。

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


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

相关问题