我如何创建一个访问列表的共享点 webpart,并且可以应用 CAML。
需要 CAML 来显示仅返回具有“位置”> 0 字段的列表项
我还需要 webpart 来应用 xslt。
我如何创建一个访问列表的共享点 webpart,并且可以应用 CAML。
需要 CAML 来显示仅返回具有“位置”> 0 字段的列表项
我还需要 webpart 来应用 xslt。
您需要将内容查询 Web 部件添加到您的页面(注意:需要 MOSS 而不是免费的 WSS)。这允许您查询数据并对其应用 XSL 转换。
Web 部件允许您查询特定的网站集、网站或列表。然后,您可以设置参数以返回特定类型的数据并应用过滤器、排序和分组。您还可以选择您希望数据以何种方式显示给最终用户,作为选项的下拉列表显示。这些选项中的每一个都由 XSL 转换提供支持。
Heather Solomon 的这篇博客文章是帮助您开始如何创建自己的转换和配置 CQWP 的最佳资源之一。它还解释了如何确保您需要的所有字段都传递到 XSLT(默认情况下,这只发生在一小部分子集中)。
更新:
要仅返回字段“Position”> 0 的列表项,在 XSLT 中也是最简单的方法。您必须已将 Position 字段添加到 CommonViewFields,以便将其传递到 XSLT。然后在您的自定义项目样式中(如果您关注 Heather 的帖子,则在 ItemStyle.xsl 中),添加以下内容:
<xsl:if test="@Position > 0">
<!-- Display desired row output -->
</xsl:if>
当“位置”<= 0 时,这会隐式忽略。
我同意 Alex 的观点,即内容查询 Web 部件 (CQWP) 是可行的方法。
但是,如果您想进入代码,您可以执行以下操作。粗略的部分是将其转换为 XML,尽管可能有一种简单的方法可以将其转换为一些非自定义(尽管丑陋)的 XML 形式。
SPList list = web.Lists["My List Name"];
SPView view = list.Views["My View Name"]; // This view would define Postion > 0
SPQuery query = new SPQuery(view);
SPListItemCollection items = list.GetItems(query);
// Iterate through results and generate XML
如果您不想使用现有视图,则需要手动设置 SPQuery 对象;将其 ViewFields、Query 和 RowLimit 设置为最小值。您可以使用CAML 查询工具来帮助您解决此问题。