标签: caml

IS CAML是查询MOSS的唯一方法吗?

CAML难以学习,难以使用,除了使用CAML查询之外,还有更好的方法从MOSS获得结果吗?并不是指速度较慢的Web服务,也不是指速度较慢的对象模型.

sharepoint moss wss caml

3
推荐指数
1
解决办法
1746
查看次数

StaticName和InternalName之间的区别(在SPField类中)

我想半智能CAML查询 - 我可以给它一个标题(这是最终用户看到的)并查找相应的"标题"以作为CAML查询的一部分传递:

var caml = "<OrderBy><FieldRef Name='" + field + "'/></OrderBy>";
Run Code Online (Sandbox Code Playgroud)

看起来我可以使用对象模型迭代列表的Fields集合,然后键入Title属性以与用户看到的内容进行比较.我的问题在于StaticName与InternalName的使用.我的内容+ MSDN文档似乎表明InternalName是在上面的代码中使用和替换字段的正确属性- 特别是因为无法修改InternalName.

任何人都可以阐明这一点吗?

sharepoint moss wss caml

3
推荐指数
1
解决办法
3894
查看次数

如何在使用SharePoint Web服务时仅返回列表的某些列?

SharePoint Web Service具有以下签名的方法:

 public System.Xml.XmlNode GetListItems(string listName, string viewName, System.Xml.XmlNode query, System.Xml.XmlNode viewFields, string rowLimit, System.Xml.XmlNode queryOptions, string webID) {
            object[] results = this.Invoke("GetListItems", new object[] {
                        listName,
                        viewName,
                        query,
                        viewFields,
                        rowLimit,
                        queryOptions,
                        webID});
            return ((System.Xml.XmlNode)(results[0]));
        }
Run Code Online (Sandbox Code Playgroud)

我只想返回列表中的"ID"和"标题"列,例如"ProductNames",而不是返回所有列.

如何使用这个webmethod实现只返回某些列?

我正在使用以下方法返回所有列:

public XmlNode GetListItems(string listName, XmlElement camlQuery)
        {
            sp.Lists listService = this.getSPListService();

            XmlDocument xmlDoc = new XmlDocument();

            XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");

            XmlElement queryOptions = xmlDoc.CreateElement("QueryOptions");

            XmlElement foldersEl = xmlDoc.CreateElement("Folder");

            if (camlQuery == null) // override default view filters
            { …
Run Code Online (Sandbox Code Playgroud)

c# sharepoint web-services list caml

3
推荐指数
1
解决办法
7161
查看次数

SharePoint CAML查询Orderby不支持降序属性.

尝试使用CAML查询从SharePoint列表中获取数据.

我使用Descending属性,但没有按预期工作.

请在下面找到代码.

<OrderBy>
    <FieldRef Name='ID' Descending = 'True'/>
</OrderBy>
Run Code Online (Sandbox Code Playgroud)

上面的代码仍然获取最小的ID(其中ID是1,2,3 ......),在我的情况下,它获取ID = 1

提前致谢.

sharepoint sharepoint-2007 caml

3
推荐指数
1
解决办法
1万
查看次数

CAML从Sharepoint到HTML

我正在调用一个返回CAML片段的SharePoint Web服务API.我已经远远地搜索了interweb但是我一直无法弄清楚如何使这个CAML片段呈现为"普通"HTML,我可以在更加理智的环境中呈现,如Plumtree,WLP,Liferay或任何其他门户除了SharePoint.

如果没有这种方法,我想知道为什么微软首先编写了返回CAML的SharePoint Web服务调用.Web服务用于互操作性,似乎CAML仅在SharePoint中运行的WebPart中有效.[Bill和Steve注意:这不是互操作性.]

如果我无法对返回的CAML做任何事情,我只会调用另一个只返回数据的Web服务,然后编写自己的UI.我希望有一条更轻松的道路.任何建议将不胜感激.

sharepoint interop web-services caml

2
推荐指数
1
解决办法
1044
查看次数

SharePoint Lists.asmx:查询返回"已删除"日历项?

在针对sharepoint list.asmx服务运行caml查询时,我有这种奇怪的行为,GetListItems方法也返回已删除的项目;

found item: test
found item: already done
found item: recurring
found item: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: Deleted: recurring event 3-4
found item: todays event 15-16 //<- NOT DELETED YET
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?我是否需要对caml查询应用特殊过滤器?我目前正在查询如下;

<Query>
  <OrderBy>
     <FieldRef Ascending='TRUE' Name='EventDate' />
  </OrderBy>
  <Where>
     <Eq>
        <FieldRef Name='EventDate' />
        <Value Type='DateTime'><Today /></Value>
     </Eq>
  </Where>
</Query>
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试了什么; 1.清除回收站中的所有内容2.在sharepoint网络服务器上执行iisreset

请注意; …

sharepoint web-services caml

2
推荐指数
1
解决办法
3908
查看次数

排序列表项目(最新的一个)

我无法以正确的顺序显示列表主题的值.以下是列表中的字段(带有实际的系统名称):

-Title -Category -NominatedWon -Logo

"标题"字段包含年份值,例如"2011","2010"等.

//getting the awards list and extracting correct values from the necesary fields
//asp running with elevated privilegs
SPSecurity.RunWithElevatedPrivileges(delegate()
{

using (SPSite site = new SPSite(webUrl))
{
using (SPWeb web = site.OpenWeb())
{



try
{

SPList awardsList = web.Lists["Awards"];

SPListItemCollection listItemCollection = awardsList.Items;



 //Creating the table
 Table tbl = new Table();

 //foreach (SPListItem oListItem in listItemCollection)
 int x = listItemCollectionI.Count;

 for(int i = 0; (i * 2) < x; i++) // divide total item collection …
Run Code Online (Sandbox Code Playgroud)

c# foreach listitem caml sharepoint-2010

2
推荐指数
1
解决办法
7714
查看次数

我还可以使用CAML进行此查询吗?

我之前有一个问题(已经解决了),为什么我被限制在CAML中的两个参数.

供参考:Sharepoint CAML中的OR问题

我现在想知道的是,我可以重新格式化这个CAML查询以接受5个OR参数,其中我从列表中收集所有项目我找到了5个参数中的任何一个的匹配项.

我问的原因是,我仅限于使用Sandbox解决方案Web部件的Designer部署.这些解决方案的资源非常有限,我希望尽可能提高查询效率,而且大多数LINQ解决方案都不像CAML那样有效地改变SQL调用.

c# sql sharepoint caml sharepoint-2010

2
推荐指数
1
解决办法
384
查看次数

ViewAttributes递归范围不起作用SharePoint 2013 CAML查询以递归方式从文档库中提取所有文件

我有一个文档库SP 2013,想要从所有文件夹和子文件夹中获取所有文档.我不想要任何文件夹,但我想从每个文件夹中获取所有文件.

使用SP 2010 U2U CAML Builder,我做了以下查询:

<query>
<QueryOptions>
        <ViewAttributes Scope="Recursive" />
    </QueryOptions> 
</query>
Run Code Online (Sandbox Code Playgroud)

此查询适用于SP 2010中的库,但它不适用于SP 2013

以下是从SP 2013库中获取数据的代码

CAMLQuery = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>\
  <soapenv:Body>\
    <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>\
      <listName>My Document Library</listName>\
<query>\
<QueryOptions>\
        <ViewAttributes Scope="Recursive" />\
    </QueryOptions> \
</query>\
    </GetListItems>\
  </soapenv:Body>\
</soapenv:Envelope>";

$.ajax({
    url: "https://<server>/teams/<siteName>/_vti_bin/lists.asmx",
    type: "POST",
    dataType: "xml",
    data: CAMLQuery,
    complete: getGrid,
    contentType: "text/xml; charset=\"utf-8\""
});
Run Code Online (Sandbox Code Playgroud)

getGrid是完成时的回调函数

请帮我解决一下这个.

recursion caml sharepoint-2013

2
推荐指数
1
解决办法
1万
查看次数

Caml查询 - 按SharePoint 2013-CSOM排序

我是新来的查询,并一直在努力.我需要最后修改的列表项.只有一个项目.这意味着它应该是'modified',而rowlimit应该是1.

但只有我的查询的rowlimit部分正在工作.不是订单部分.

这是我的查询:

        var camlQuery = new SP.CamlQuery();

        camlQuery.set_viewXml('<View><Query><OrderBy><FieldRef Name=\'Modified\' Ascending="FALSE"/></OrderBy><RowLimit>1</RowLimit></Query></View>";')
Run Code Online (Sandbox Code Playgroud)

我不知道我哪里错了.我甚至尝试在上述查询中删除Query标记.

查询正在运行,它只获得一条记录.订单不工作,我相信.

这是在jQuery中.我已经写了一个函数,并在我的Ready函数中调用该函数.

请帮我.

谢谢.

sharepoint caml csom

2
推荐指数
1
解决办法
2万
查看次数