2009-06-17 123 views
1

如何创建访问列表的SharePoint Sharepoint,并且可以将CAML应用于它。与caml和xslt的sharepoint webpart

需要的CAML显示返回有场“位置”仅列表项> 0

我还需要在web部件有适用于XSLT。

+0

添加要求“位置”> 0以回答。 – 2009-06-22 14:05:10

回答

3

您需要将内容查询Web部件添加到您的页面(注意:要求MOSS不是免费的WSS)。这使您可以查询数据并对其应用XSL转换。

Web部件允许您查询特定的网站集,网站或列表。然后,您可以设置参数以返回某种类型的数据并应用过滤器,排序和分组。您还可以选择希望将数据显示给最终用户的选项列表。每个选项都由XSL变换提供支持。

This blog post by Heather Solomon是帮助您开始如何创建自己的转换和配置CQWP的最佳资源之一。它还解释了如何确保您需要的所有字段都传递给XSLT(默认情况下,这只发生在一个小子集中)。

更新:

只返回列表项,其中场“位置”> 0,这是最简单的XSLT内做到这一点。您必须将位置字段添加到CommonViewFields,以便它传递给XSLT。然后在您的自定义项的风格(在ItemStyle.xsl如果你遵循希瑟的帖子),添加以下内容:

<xsl:if test="@Position &gt; 0"> 
    <!-- Display desired row output --> 
</xsl:if> 

这隐含忽略时,“位置” < = 0

1

我与亚历克斯同意,内容查询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设置为最小。您可以使用a CAML Query Tool来帮助您解决这个问题。