在网格中显示内容查询 Web 部件的结果 / 表

概述和目标

开箱即用, 苔藓’ 内容查询 Web 部件 (CQWP) 其结果显示在列表格式中, 类似于搜索结果. 它也是可能以网格格式显示结果 (e 小节. HTML 表的格式). 栅格格式是在某些情况下更好. 描述了如何实现这种效果在这篇文章.

业务方案

有在客户端与企业级苔藓推出. 我们已设计及其分类,例如,项目层次结构中的第一类公民,有他们自己的顶级网站. 项目经理保持单身人士列表项目的摘要信息, 如标题, 预算, 预计的完工日期, 其余的预算和其他摘要类型字段. 由"单身" 我的意思是保证包含只有一个项目的自定义 SharePoint 列表. 简单地, 它看起来像这样:

图像

技术方法是多描述的一样 在这里 (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP 使用 XSL 转换来发出为浏览器的 HTML 呈现.

我总是设想结果前潜入 XSL,因为 XSL 是一场噩梦. 这里是我期望的结果:

图像

像这样的 HTML 生成的结果:

<html>
 <正文>
 <中心>
 < 边框= 1>

<!-- 标签 — —>
 <tr 背景色= 蓝>
 <运输署><字体 颜色= 白色><b>项目名称</b></字体></运输署>
 <运输署 对齐= 正确><字体 颜色= 白色><b>完成日期</b></字体></运输署>
 <运输署 对齐= 正确><字体 颜色= 白色><b>预算</b></字体></运输署>
 <运输署 对齐= 正确><字体 颜色= 白色><b>实际费用</b></字体></运输署>
 <运输署><字体 颜色= 白色><b>整体状态</b></字体></运输署>
 </tr>

<tr>
 <运输署>重新连接计算机房.</运输署>
 <运输署 对齐= 正确>02/01/08</运输署>
 <运输署 对齐= 正确>22,500.00</运输署>
 <运输署 对齐= 正确>19,000.00</运输署>
 <运输署>在进展中</运输署>
 </tr>

<tr>
 <运输署>提供服务器的 SQL 升级</运输署>
 <运输署 对齐= 正确>04/01/08</运输署>
 <运输署 对齐= 正确>7,500.00</运输署>
 <运输署 对齐= 正确>0.00</运输署>
 <运输署>计划</运输署>
 </tr>

</>
 </中心>
 </正文>
</html>

方法

按照这些步骤来创建网格:

  1. 确定网格的组件 (行/列).
  2. 定义并创建必要的站点列.
  3. 创建子网站,为项目和单身人士名单.
  4. 将 CQWP 添加到 web 页并将其配置为搜索您的列表.
  5. 修改 CQWP 的 XML,以收集更多列.
  6. 修改 XSL 生成表.

我要去专注于数字六. 数字从一到四个是直向前和任何 CQWP 用户已经做的东西. 五号已被证实的其他人包括详尽屏幕截图载货的本文从 MSDN 在这里 (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) 和希瑟 · 所罗门的博客 在这里 (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

螺栓和螺母

开始和执行步骤一到五的 MSDN 文档和希瑟 · 所罗门条步骤.

在这一点, 向页面添加了您的 CQWP 和你有你 <CommonViewFields> 根据需要配置.

按照通常的步骤, 拿到这些中间结果:

1. 创建内容类型, 该内容类型和两个站点模板的自定义列表. 这里是内容类型:

图像

这里是网站结构:

图像

2. 创建我的项目的子网站和单身人士项目摘要列表后添加 CQWP:

图像

3. 添加我想要通过的所有其他信息 <CommonViewFields>:

        <属性 名称="CommonViewFields" 类型="字符串">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</属性>

请注意,我只好把上一个线或它的所有属性字段将不工作 (CQWP 会告诉我该查询返回没有项目).

4. 在这一点, 我们准备去超越 MSDN 文章翻到希瑟 · 所罗门的文章. 跟随她的脚步开始近一步 #5 若要创建一个自定义 / 未托管的版本的 ItemStyle.xsl. 希瑟的听从, 通过一步向上 11 和得到这些中间结果:

4.1: 名称我的 XSL 模板,如下所示:

<xsl:模板名称 ="网格" 匹配 ="行[@Style = 电网]" 模式 ="itemstyle">

她建议,我也略有修改 <xsl:为每个 …> 通过添加 <br /> 标记,以提供更清洁的上市:

    <xsl:为每个 请选择="@*">
      P:<xsl:值的 请选择="名称()" /><br/>
    </xsl:为每个>

4.2: 我修改的 web 部件, 转到外观并选择我"网格" 样式:

图像

应用更改并在这里是结果:

图像

从上面我们可以看到我们想要的字段 (项目名称, 费用, 状态, 等) 可供我们使用时我们发出的 HTML. 不只如此, 但我们看到,我们必须引用那些列在 XSL 中的名称. 例如, 我们作为"Project_x005F_x0020_Name"引用项目状态.

在这一点, 我们离开从希瑟的博客,从这些巨人的肩膀, 添加我自己一点点.

ContentQueryMain.xsl

请注意: 当对 ContentQueryMain.xsl 以及 ItemStyle.xsl 的更改, 您需要检查那些文件回之前您看到您的更改的效果.

为网格制作目的, 苔藓使用两个不同的 XSL 文件来生成的结果我们看到从 CQWP. 生成输出的前一位, 我们修改了 ItemStyle.xsl. 苔藓实际上使用另一个 XSL 文件, ContentQueryMain.xsl 到 ItemStyle.xsl 来生成其 HTML 结合. 正如其名称所暗示, ContentQueryMain.xsl 是"主" 控制整体液流的翻译的 XSL. 它遍历所有找到的项并将它们传递到模板逐一在 ItemStyle.xsl. 我们将修改 ItemStyle.xsl 生成开放 <表> 之前发射的第一行的数据并关闭标记 <表> 标记后发出的最后一行. 要做到这一点, ContentQueryMain.xsl 被修改,以将两个参数传递给我们"网格" ItemStyle.xsl 中的模板, "最后一行" 和"当前行". ItemStyle.xsl 使用这些有条件地发出必要的标记.

使用希瑟 · 所罗门的技术, 我们找到 ContentQueryMain.xsl. 它坐落在 ItemStyle.xsl 一样的地方. 此屏幕快照应该帮助:

图像

我们需要进行以下更改:

  • 修改 xsl 模板, "CallItemTemplate" 这实际上调用我们在 ItemStyle.xsl 的网格模板. 我们将到网格模板传递两个参数,以便它会有这些数据,它需要有条件地生成打开和关闭 <表> 标签.
  • 另一位叫"CallItemTemplate 的 ContentQueryMain.xsl 的修改" 把它传递"LastRow" 所以,LastRow 可能会转嫁到我们的网格模板的参数.

找到名为"OuterTemplate.CallItemTemplate 的模板" 由该字符串标识:

  <xsl:模板 名称="OuterTemplate.CallItemTemplate">

替换整个模板,如下所示:

  <xsl:模板 名称="OuterTemplate.CallItemTemplate">
    <xsl:param 名称="CurPosition" />

    <!--
      添加"LastRow" 参数.
      我们只使用它时在项目样式通行证是"网格".
    -->
    <xsl:param 名称="LastRow" />

    <xsl:选择>
      <xsl:当 测试="@Style = 'NewsRollUpItem'">
        <xsl:应用模板 请选择="." 模式="itemstyle">
          <xsl:与 param 名称="EditMode" 请选择="$cbq_iseditmode" />
        </xsl:应用模板>
      </xsl:当>
      <xsl:当 测试="@Style = 'NewsBigItem'">
        <xsl:应用模板 请选择="." 模式="itemstyle">
          <xsl:与 param 名称="CurPos" 请选择="$CurPosition" />
        </xsl:应用模板>
      </xsl:当>
      <xsl:当 测试="@Style = 'NewsCategoryItem'">
        <xsl:应用模板 请选择="." 模式="itemstyle">
          <xsl:与 param 名称="CurPos" 请选择="$CurPosition" />
        </xsl:应用模板>
      </xsl:当>

      <!--
              将当前的位置和 lastrow 传递给网格 itemstyle.xsl 模板.
              ItemStyle.xsl 将使用,要发出打开和关闭 <表> 标签.
      -->
      <xsl:当 测试="@Style = 电网">
        <xsl:应用模板 请选择="." 模式="itemstyle">
          <xsl:与 param 名称="CurPos" 请选择="$CurPosition" />
          <xsl:与 param 名称="最后" 请选择="$LastRow" />
        </xsl:应用模板>
      </xsl:当>

      <xsl:否则>
        <xsl:应用模板 请选择="." 模式="itemstyle">
        </xsl:应用模板>
      </xsl:否则>
    </xsl:选择>
  </xsl:模板>

注释说明的目的所做的更改.

答案是肯定的, "OuterTemplate.CallItemTemplate" 本身是从另一个模板调用吗. 通过搜索此文本字符串查找该模板:

<xsl:模板 名称="OuterTemplate.Body">

滚动 OuterTemplate.Body 中的说明并插入 LastRow 参数,如下所示 (显示为斜体的注释):

<xsl:调用模板 名称="OuterTemplate.CallItemTemplate">
  <xsl:与 param 名称="CurPosition" 请选择="$CurPosition" />
  <!-- 插入 LastRow 参数. -->
  <xsl:与 param 名称="LastRow" 请选择="$LastRow"/>
</xsl:调用模板>

所有这一切之后, 我们终于有事情正确设置,以便可以将发出我们 ItemStyle.xsl <表> 在正确的地点标记.

ItemStyle.Xsl

请注意: 再次, 在 ItemStyle.xsl 中进行任何更改,这样,你看到那些更改的效果后检查.

我们这里有两个任务:

  • 替换整个网格模板. 你可以复制/粘贴从下面.
  • 添加一些胡言外模板定义,使"formatcurrency" 要工作模板. (你可以告诉我关于 XSL 有稀薄的句柄).

第一次, 靠近顶部的 ItemStyle.xsl, 添加下面这行:

  <!-- 一些胡言乱语,使我们能够显示美国. 货币. -->
  <xsl:十进制格式 名称="工作人员" 数字="D" />

  <xsl:模板 名称="默认" 匹配="*" 模式="itemstyle">

我已添加直接之前的注释 <xsl:模板名称 ="默认" …> 定义.

下一步, 回到我们的网格模板. 用下面的代码替换整个网格模板. 它是彻底的评论, 但不要犹豫给我发电子邮件或在我的博客留下评论,如果你有问题.

  <xsl:模板 名称="网格" 匹配="行[@Style = 电网]" 模式="itemstyle">

    <!--
      ContentMain.xsl 通过 CurPos 和最后.
      我们使用这些有条件地发出打开和关闭 <表> 标签.
    -->
    <xsl:param 名称="CurPos" />
    <xsl:param 名称="最后" />

    <!-- 下列变量是从标准 ItemStyle.xsl 中未被修改 -->
    <xsl:变量 名称="SafeImageUrl">
      <xsl:调用模板 名称="OuterTemplate.GetSafeStaticUrl">
        <xsl:与 param 名称="UrlColumnName" 请选择="'' ImageUrl"/>
      </xsl:调用模板>
    </xsl:变量>
    <xsl:变量 名称="SafeLinkUrl">
      <xsl:调用模板 名称="OuterTemplate.GetSafeLink">
        <xsl:与 param 名称="UrlColumnName" 请选择="'' LinkUrl"/>
      </xsl:调用模板>
    </xsl:变量>
    <xsl:变量 名称="DisplayTitle">
      <xsl:调用模板 名称="OuterTemplate.GetTitle">
        <xsl:与 param 名称="标题" 请选择="@Title"/>
        <xsl:与 param 名称="UrlColumnName" 请选择="'' LinkUrl"/>
      </xsl:调用模板>
    </xsl:变量>
    <xsl:变量 名称="LinkTarget">
      <xsl:如果 测试="@OpenInNewWindow = true" >_blank</xsl:如果>
    </xsl:变量>

    <!--
      在这里我们定义一个变量, ""tableStart.  这包含的 HTML,我们使用来定义表的列标签开幕.  请注意,如果 CurPos = 1, 它包括 HTML 在 CDATA 标记.
      否则, 它将为空.

      TableStart 的值是一大,每次通过 ContentQueryMain.xsl 调用 ItemStyle 时.
    -->
    <xsl:变量 名称="tableStart">
      <xsl:如果 测试="$CurPos = 1">
        <![CDATA[
        <表格边框 = 1>
          <tr 背景色 ="蓝色">
            <运输署><字体颜色 ="白"><b>项目名称</b></字体></运输署>
            <运输署对齐 ="权利"><字体颜色 ="白"><b>完成日期</b></字体></运输署>
            <运输署对齐 ="权利"><字体颜色 ="白"><b>预算</b></字体></运输署>
            <运输署对齐 ="权利"><字体颜色 ="白"><b>实际费用</b></字体></运输署>
            <运输署><字体颜色 ="白"><b>整体状态</b></字体></运输署>
          </tr>
        ]]>
      </xsl:如果>
    </xsl:变量>

    <!--
      另一个变量, tableEnd 只是定义关闭表标记.

      与 tableStart 一样, 它始终是一大.  这就是为什么它的值分配有条件地根据是否我们被路过的最后一行 ContentQueryMain.xsl.
    -->
    <xsl:变量 名称="tableEnd">
      <xsl:如果 测试="$CurPos = $Last">
        <![CDATA[ </表> ]]>
      </xsl:如果>
    </xsl:变量>

    <!--
      总是发出 tableStart 的内容.  如果这不是通过 ContentQueryMain.xsl 传递给我们的第一行, 然后我们知道它的值将显示为空白.

      禁用输出转义因为当 tableStart 不空白, 它包括我们要由浏览器呈现的实际 HTML.  如果我们不告诉 XSL 解析器来禁用输出转义, 它将生成之类"&这是;表&gt;" 而不是"<表>".
    -->
    <xsl:值的 请选择="$tableStart" 禁用输出转义=""/>


    <tr>
      <!--
      P:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <运输署>
        <xsl:值的 请选择="@Project_x005F_x0020_Name"/>
      </运输署>

      <运输署 对齐="权利">
        <xsl:值的 请选择="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </运输署>

      <运输署 对齐="权利">
        <xsl:调用模板 名称="formatcurrency">
          <xsl:与 param 名称="价值" 
请选择="@Project_x005F_x0020_Budget"></xsl:与 param> </xsl:调用模板> </运输署> <运输署 对齐="权利"> <xsl:调用模板 名称="formatcurrency"> <xsl:与 param 名称="价值" 请选择="@Project_x005F_x0020_Expenses">
</xsl:与 param> </xsl:调用模板> </运输署> <运输署> <xsl:值的 请选择="@Project_x005F_x0020_Status"/> </运输署> <!-- 满足以下所有条件被注释掉,以澄清事情. 不过, 把它带回来,塞进 <运输署> 看看它的效果. --> <!-- <div id ="linkitem" 类 ="项目"> <xsl:如果测试 ="字符串长度($SafeImageUrl) != 0"> <div 类 ="图像-地区-左"> <href ="{$SafeLinkUrl}" 目标 ="{$LinkTarget}"> <img 类 ="图像-固定宽度" src ="{$SafeImageUrl}"
alt ="{@ImageUrlAltText}"/> </一> </div> </xsl:如果> <div 类 ="链接"> <xsl:调用模板
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <href ="{$SafeLinkUrl}"
目标 ="{$LinkTarget}" 标题 ="{@LinkToolTip}"> <xsl:值的选择 ="$DisxslyTitle"/> </一> <div 类 ="描述"> <xsl:值的 select="@Description" /> </div> </div> </div>
--> </tr> <!-- 发出关闭表标记. 如果我们不是在最后一行, 这将显示为空白. --> <xsl:值的 请选择="$tableEnd" 禁用输出转义=""/> </xsl:模板> <xsl:模板 名称="formatcurrency"> <xsl:param 名称="价值" 请选择="0" /> <xsl:值的 请选择='数字格式($价值, "$DDD,DDD,DDD。GDA, "工作人员")' /> </xsl:模板>

22 上“的想法在网格中显示内容查询 Web 部件的结果 / 表

  1. Andreas

    Aah… 这是因为我以不同的方式命名我的列表样式并没有意识到在 ContentQueryMain.xsl 中它会检查"风格":

    <xsl:当 test="@Style='NameOfMyStyle'">

    它与重命名的工作. 🙂

    答复
  2. Andreas

    它几乎为我工作: 我设法输出 </表> 正确地结束标记, 但起始标记是缺掉的. 看来测试 ="$CurPos = 1" 不会返回 true. 但是,为什么?

    答复
  3. 阿南德 · 辛格 · 拉瓦特

    伟大的职位. Paul 我做上面的事情. 我有一个查询, 如何实现"总实际开支不可随意的总和" 或两个列的值的总和.

    答复
  4. 丽莎

    你做任何工作与创建自定义的 ContentQueryMain 和 ItemStyle xsl 文件了? 我问的原因是我不想担心我自定义的样式将被覆盖任何补丁程序或升级. 你有例子吗? 我试过 ContentQueryMain.xsl 完全相同的副本并将该新的自定义副本上载到样式库. 当在.webpart 的 MainXslLink 属性中把这个 xsl 文件的引用, 我得到 401 未授权. 自定义 xsl 文件是已发布的版本,每个人都有对它的读访问权限.

    答复
  5. 格雷格 · 谢里登

    你好, 这是一个真正有帮助的帖子. 我把它所有的工作, 和也实行的迈克布朗的变化,所以将一组
    里面的桌子旁无论结果我作为 CQWB 的属性中的组的参数选择.
    我也做了标题链接, 所以它很好地工作. 我仍然有一个问题, 虽然. 我按站点名称分组结果. 在表格内, 它很好地组合它们, 它看起来不错, 但它仍然是打印出所有的组
    名称(在我的例子中的站点名称) 表的上方. 有谁知道如何摆脱这些?
    谢谢,
    格雷格 ·

    答复
  6. 没有名称

    好文章. 我设法给我的表的默认 Sharepoint 列表的外观通过分析列表中的源代码. 这里是需要在 ItemStyle 中适合的主要 HTML 块:

    <表格宽度 ="100%" 类 ="ms listviewtable" 边境 = 0 空隙 = 0 中 = 1 dir ="None">

    <!–标题–>
    <TR 类 ="ms viewheadertr" 底边对齐 = 顶部>
    <TH nowrap 范围 ="col" 类 ="ms-vh2"><div 样式 ="宽度:100%;位置:相对;左:0;返回页首:0;">
    <表样式 ="宽度:100%;" CtxNum ="1" 高度 ="100%" 格 = 1 中 = 0 类 ="ms-unselectedtitle">
    <TR>
    <TD 宽度 ="100%" 类 ="ms vb" nowrap>
    富有杜效价 ici

    </TD>
    <TD 样式 ="位置:绝对;">
    </TD>
    </TR>
    </表></div>
    </TH>

    <!–对于所有标头单元格重复–>
    </TR>

    <!– 表数据 –>
    <TR 类 ="">
    <!–数据列, 第一次与超链接使用 Paul 的代码 –>
    <TD 类 ="ms vb2">数据在这里</TD>

    <!–空列–>
    <TD 类 ="ms vb2">
    <大跨度 dir = 无></大跨度><
    /TD>

    <!–日期列–>
    <TD 类 ="ms vb2">
    <NOBR>11/12/2008</NOBR>
    </TD>
    </TR>

    <!–***可选行 – 使用将插入基于模 2 的当前行的交替类的一个新的 XSL 变量–>
    <TR 类 ="ms 交替">

    </TR>
    </表>

    答复
  7. 迈克-布朗
    佐尔坦,
    我正在和你同样的问题. 我想我所有的项目都显示在分组的方式,而不是只是 lits. 这里是我如何实现它.
    ContentQueryMain.xsl
    <xsl:当 test="@Style='Grid'">
    <xsl:应用模板选择 ="。" 模式 ="itemstyle">
    <xsl:与参数名称 ="CurPos" 选择 ="$CurPosition" />
    <xsl:与参数名称 ="最后一" 选择 ="$LastRow" />
    <!–添加此新的部分,要传递的参数,指示新的组已经开始–>
    <xsl:与参数名称 ="StartNewGroup" select="@__begingroup" />
    </xsl:应用模板>
    </xsl:当>
    ItemStyle.xsl
    添加您的参数
    <xsl:参数名称 ="StartNewGroup"/>
    将此文本添加作为数据的第一行
    <xsl:选择>
    <xsl:当测试 ="$StartNewGroup = True">
    <tr>
    <运输署 >
    <xsl:调用模板 name="OuterTemplate.GetGroupName">
    <xsl:与参数名称 ="组名" select="@*[名称()$Group =]"/>
    <xsl:与参数名称 ="GroupType" 选择 ="$GroupType"/>
    </xsl:调用模板>
    </运输署>
    </tr>
    </xsl:当>
    <xsl:否则>
    </xsl:否则>
    </xsl:选择>
    这应该照顾您在您的网格中的分组问题. 每个组现在将开始新的一行指明组名称与. 我的解决方案我实际上加了一片空白 <td /> 这样也缩进它的数据中分组站出来更好.
    上门 1
    datacolumn1 datacolumn2 datacolumn3 等

    datacolumn1 datacolumn2 datacolumn3 等
    上门 2
    datacolumn1 datacolumn2 datacolumn3 等
    Site3

    datacolumn1 datacolumn2 datacolumn3 等

    datacolumn1 datacolumn2 datacolumn3 等
    等.
    答复
  8. 佐尔坦
    你好保罗,
    感谢您的职位, 我设法安排我在网格中的查询结果, 这是很有帮助. 不过, 我应该去进一步和组我基于网站的结果. 那一刻, 首先列出了网站名称, 然后是这个只有一个大的网格,从不同的站点上收集的所有行. 就像这个样子:
    Site1 名称
    上门 2 名称
    在网格中的所有站点数据
    任何想法上我应该修改才能得到我的数据,如下所示:
    Site1 名称
    为 Site1 网格中的数据
    上门 2 名称
    对于上门 2 网格中的数据
    谢谢,
    佐尔坦
    答复
  9. Pierre 茹贝尔
    精彩绝伦的帖子, 解决了我遇到的问题.
    我唯一的问题显示分配给字段, "用户配置" 字段类型和导入 web 部件然后显示以下错误:
    "没有检索要在此 Web 部件中显示的数据时出错。"
    我已经试过所有可能的字段类型, 与任何其他用户"" 它不会显示错误, 但是它不显示任何字段中. 所以我假设用户字段类型正确, 所以我一定遗漏了一个设置在某个地方.
    任何对此的想法?
    问候
    Pierre
    答复
  10. Charftong
    伟大的职位!!! 非常非常有帮助.
    简短的问题。, 你已经做了将分配给或 ModifiedBy 的字段显示存在任何工作吗? 因为某些原因, 每当我试着去 dipslay CQWP 中的指派给字段, 它始终显示为带为例"203;#沙尔夫通". 我找不到解决的办法.
    答复
  11. 詹妮弗 Davis
    保罗
    大文章, 谢谢. 我正在做一些非常类似,但要显示链接到该项目网站,而不是列表中的项. 例如, 我们有 25 最高级别项目网站和每个包含的内容类型的列表. 这些都是项目名称, 司, 说明. 我想要使用内容查询 web 部件来提取此数据和已成功只是在默认情况下该 URL 将我带到列表中的项条目,我真的需要它要带我去项目工地. 你能给我任何建议吗?
    谢谢
    答复
  12. 保罗 · 高尔文
    基伦,
    我总是使用 visual studio 编辑 XSL,. 它提供了彩色编码,它也有一些好的智能感知支持.
    –保罗
    答复
  13. 基兰写道::

    嗨保罗,

    当使用 xml/xsl 和内容查询 web 部件, 你找到好的方法来设置您的 xslt 的格式吗? 试图更改和设计的测试证明正确的疼痛的 * * 只使用一个文本编辑器…

    所有最好的

    答复
  14. Michael Dipay
    关于这个问题我在最后一次在那里但不显示图像从网格视图相反显示的文本 (https://myweb.com/Marketing/images/icn-order.gif,). 我设法解决它的帮助下 SharePoint 设计器创建自定义视图并选择我想要显示的自定义列. 我发现图像的列类型如下所示的 URL(逗号) (例如:. https://myweb.com/Marketing/images/icn-order.gif,). 当前格式为文本格式, 所以我不得不将它更改为图片从常见的 xsl:值的任务 — —> 作为图片的格式. 这种变化对我想要显示的自定义图像显示. 我复制了要显示的图像的代码 ( <img 边境 ="0" src ="{子字符串-前(@IcnOrder, ‘, ‘)}" /> ) 我不得不在 ItemStyle.xsl 文件中的代码更改所 @PICTURECOLUMNNAME <img 边境 ="0" src ="{子字符串-前(@IcnOrder, ‘, ‘)}" /> . 然后将它保存. 现在我的表网格结果显示文本,以及自定义图像类型列.
    答复
  15. 海伦
    嗨保罗,
    感谢伟大的文章!
    你提到的条件格式 – "你也可以放在条件格式, 如显示已超出他们在红色的预算的项目。" 你碰巧有一个代码示例的吗?
    再次感谢!
    海伦
    答复
  16. Michael Dipay
    嗨保罗,
    它是一篇好文章,能够按预期产生相同的结果. 我有一个要求,作为其中一列的网格中显示的图像. 它不在网格上显示图像,但相反的形象与显示的 url (,) 在结束了逗号.
    (例如:. https://myweb.com/Marketing/images/icn-order.gif, )
    我应该使用图像或图片在 CommonViewFields 字段类型? (例如:. InternalColumnName, 图像)
    谢谢,
    迈克
    答复
  17. Saji Ijiyemi

    您的帖子正是我要找的东西. 不过, 我不能让它工作.

    我有不同的文档中存储的文档. 存储库,但分类使用自定义类列 (选择: 1 或 2. 我想要使用 CQWP 来显示这些文件基于他们班.
    我是能够添加 CQWP, 将其导出到 SPD, 配置 itemStyle.xls 在列表视图中显示自定义领域. 然而, 我不能成功地执行你在这里描述.

    这些都是我想要在我的 CQWP 中显示的列:

    文件类型 (显示图标)
    文件标题
    上次修改日期
    由世卫组织修改
    签出给
    签入注释

    目前在列表格式的结果. 做如何改变为台面的格式.

    谢谢.

    答复

离开回复 Michael Dipay 取消回复

您的电子邮件地址不会被公开. 必需的地方已做标记 *