Caml Help

public static class SharePointHelpExtension
{
/// <summary>
/// 获取链接地址的Url传参
/// </summary>
/// <param name="uri"></param>
/// <returns></returns>
public static NameValueCollection GetQueryString(this Uri uri)
{
return HttpUtility.ParseQueryString(uri.Query);
}

/// <summary>
/// 获取链接地址的Url传参
/// </summary>
/// <param name="uri"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public static NameValueCollection GetQueryString(this Uri uri, Encoding encoding)
{
return HttpUtility.ParseQueryString(uri.Query, encoding);
}

/// <summary>
/// 获取当前页面的命称
/// </summary>
/// <param name="uri"></param>
/// <returns></returns>
public static string GetPageName(this Uri uri)
{
if (uri.Segments.Length > 0)
{
return uri.Segments[uri.Segments.Length - 1];
}
else
{
return "";
}
}
/// <summary>
/// 创建一个新的列表
/// </summary>
/// <param name="web"></param>
/// <param name="templateName"></param>
/// <param name="url"></param>
/// <param name="title"></param>
/// <param name="description"></param>
public static void CreateList(this SPWeb web, string templateName, string url, string title, string description)
{
SPListTemplate template = web.ListTemplates[templateName];
Guid listId = web.Lists.Add(url, description, template);
SPList list = web.Lists[listId];
list.OnQuickLaunch = true;
list.Title = title;
list.Update();
}

/// <summary>
/// 超过长度截断字符串,并在后面加...
/// </summary>
/// <param name="input"></param>
/// <param name="len"></param>
/// <returns></returns>
public static string SubStringByLength(this string input, int len)
{
return SharePointHelp.SubStringByLength(input, len);
}
/// <summary>
/// 为Where添加一个与原有条件And关系的条件
/// </summary>
/// <param name="where"></param>
/// <param name="newNode"></param>
public static void OrCamlAnd(this XElement where, XElement newNode)
{
if (where.HasElements)
{
XElement and = new XElement("Or", where.FirstNode, newNode);
where.RemoveAll();
where.Add(and);
}
else
{
where.Add(newNode);
}
}

/// <summary>
/// 为Where添加一个与原有条件And关系的条件
/// </summary>
/// <param name="where"></param>
/// <param name="newNode"></param>
public static void OrCamlAnd(this XElement where, string operators, string fieldName, string value, string valueType)
{
XElement el = new XElement(operators
, new XElement("FieldRef", new XAttribute("Name", fieldName))
, new XElement("Value", new XAttribute("Type", valueType), value));
where.OrCamlAnd(el);
}

/// <summary>
/// 为Where添加一个与原有条件And关系的条件
/// </summary>
/// <param name="where"></param>
/// <param name="newNode"></param>
public static void AddCamlAnd(this XElement where, XElement newNode)
{
if (where.HasElements)
{
XElement and = new XElement("And", where.FirstNode, newNode);
where.RemoveAll();
where.Add(and);
}
else
{
where.Add(newNode);
}
}

/// <summary>
/// 为Where添加一个与原有条件And关系的条件
/// </summary>
/// <param name="where"></param>
/// <param name="newNode"></param>
public static void AddCamlAnd(this XElement where, string operators, string fieldName, string value, string valueType)
{
XElement el = new XElement(operators
, new XElement("FieldRef", new XAttribute("Name", fieldName))
, new XElement("Value", new XAttribute("Type", valueType), value));
where.AddCamlAnd(el);
}

/// <summary>
/// 为Where添加一个与原有条件And关系的条件
/// </summary>
/// <param name="where"></param>
/// <param name="newNode"></param>
public static void AddCamlAnd(this XElement where, string operators, string fieldName, string value)
{
where.AddCamlAnd(operators, fieldName, value, "Text");
}

/// <summary>
/// 为Where添加一个与原有条件And关系的条件
/// </summary>
/// <param name="where"></param>
/// <param name="newNode"></param>
public static void AddCamlAnd(this XElement where, string operators, Guid fieldId, string value, string valueType)
{
XElement el = new XElement(operators
, new XElement("FieldRef", new XAttribute("ID", fieldId))
, new XElement("Value", new XAttribute("Type", valueType), value));
where.AddCamlAnd(el);
}

/// <summary>
/// 为Where添加一个与原有条件And关系的条件
/// </summary>
/// <param name="where"></param>
/// <param name="newNode"></param>
public static void AddCamlAnd(this XElement where, string operators, Guid fieldId, string value)
{
where.AddCamlAnd(operators, fieldId, value, "Text");
}
/// <summary>
/// 为Where添加一个与原有条件And关系的条件
/// </summary>
/// <param name="where"></param>
/// <param name="newNode"></param>
public static void AddCamlAnd(this XElement where, string operators, Guid fieldId)
{
XElement el = new XElement(operators
, new XElement("FieldRef", new XAttribute("ID", fieldId)));
where.AddCamlAnd(el);
}
/// <summary>
/// 为Where添加一个与原有条件And关系的条件
/// </summary>
/// <param name="where"></param>
/// <param name="newNode"></param>
public static void AddCamlAnd(this XElement where, string operators, string fieldName)
{
XElement el = new XElement(operators
, new XElement("FieldRef", new XAttribute("Name", fieldName)));
where.AddCamlAnd(el);
}

/// <summary>
/// 创建一个条件
/// </summary>
/// <param name="where"></param>
/// <param name="operators"></param>
/// <param name="fieldId"></param>
/// <param name="value"></param>
/// <param name="valueType"></param>
/// <returns></returns>
public static XElement BuildCamlCondition(this XElement where, string operators, Guid fieldId, string value, string valueType)
{
XElement el = new XElement(operators
, new XElement("FieldRef", new XAttribute("ID", fieldId))
, new XElement("Value", new XAttribute("Type", valueType), value));
return el;
}
/// <summary>
/// 创建一个条件
/// </summary>
/// <param name="where"></param>
/// <param name="operators"></param>
/// <param name="fieldName"></param>
/// <param name="value"></param>
/// <param name="valueType"></param>
/// <returns></returns>
public static XElement BuildCamlCondition(this XElement where, string operators, string fieldName, string value, string valueType)
{
XElement el = new XElement(operators
, new XElement("FieldRef", new XAttribute("Name", fieldName))
, new XElement("Value", new XAttribute("Type", valueType), value));
return el;
}
}

时间: 2024-11-08 22:03:59

Caml Help的相关文章

CAML获取SharePoint文档库中除文件夹外所有文档

方法一: ? 1 2 3 4 <QueryOptions>         <ViewAttributes Scope="Recursive" />     </QueryOptions> </query> 方法二: ? 1 2 3 4 5 <View Scope="RecursiveAll">     <Query>         <Where>...</Where>

SharePoint服务器端对象模型 之 使用CAML进展数据查询

SharePoint服务器端对象模型 之 使用CAML进行数据查询 一.概述 在SharePoint的开发应用中,查询是非常常用的一种手段,根据某些筛选.排序条件,获得某个列表或者某一些列表中相应的列表条目的集合. 除去列表上的查询之外,在SharePoint中还大量存在着各种各样的查询,比如针对回收站的SPRecycleBinQuery.针对审计的SPAuditQuery.针对变更的SPChangeQuery等等,不过这些查询在实际项目中使用到的频率并不是很高.本章节还是着重介绍列表查询功能.

适用于SharePoint 2013 的 CAML Desinger

适用于SharePoint 2013 的 CAML Desinger 分类: SharePoint2013-01-15 21:52 1877人阅读 评论(0) 收藏 举报 CAMLDesingerSharePoint 2013代码生成适用于 如果说Sql是信息管理系统的一等公民,那么SharePoint 系统中的一等公民就非CAML莫属了. 但是这个一等公民的语法结构是基于XML的,徒手写起来还挺费劲的,我们说工欲成其事必先利其器,这里向大家介绍适用于SharePoint 2013 的 CAML

SharePoint服务器端对象模型 之 使用CAML进行数据查询

(一)概述 在SharePoint的开发应用中,查询是非常常用的一种手段,根据某些筛选.排序条件,获得某个列表或者某一些列表中相应的列表条目的集合. 除去列表上的查询之外,在SharePoint中还大量存在着各种各样的查询,比如针对回收站的SPRecycleBinQuery.针对审计的SPAuditQuery.针对变更的SPChangeQuery等等,不过这些查询在实际项目中使用到的频率并不是很高.本章节还是着重介绍列表查询功能. 在SharePoint 2010之前,列表查询的查询语句都是通过

SharePoint CAML判断一个列表项是否有附件

<Eq>               <FieldRef Name='Attachments' />               <Value Type='Attachments'>1</Value>            </Eq> SharePoint CAML判断一个列表项是否有附件,布布扣,bubuko.com

CAML语句 多条件and使用

需求是一个不固定条件的查询,要组合三个不固定的条件,就是说可能是一个,2个或者3个(即模糊查询): 起初,我通过视图把我所需要的用视图的filter进行构造,当时我构造了两个条件,通过工具找到该CAML 语句,语句如下: <Query> <Where> <And> <Contains> <FieldRef Name="Department" /> <Value Type="Text">cbu&l

SharePoint DataFormWebPart 通过Caml和xslt聚合内容

以下是一个例子,SPDataSource用于查询内容,DatasourceMode属性指定查询范围(网站集,网站,列表),SelectCommand是Caml查询:Xsl展示内容,下面列子是用table展示. <WebPartPages:DataFormWebPart runat="server" EnableOriginalValue="False" ViewFlag="8" ViewContentTypeId=""

SharePoint 2013 中使用 CAML 的Membership 条件

SharePoint 2013 中使用 CAML 的Membership条件. Membership 用判断用户是否属于某个组, 适用于SP组, AD组,AD组嵌套在SP组中的各种情况. 以下过滤条件表示过滤出当前用户属于AssignedTo这个字段的组(P组, AD组,AD组嵌套在SP组)的纪录: <Membership Type="CurrentUserGroups"> <FieldRef Name="AssginedTo"/> <

SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 2)

(三)使用SPQuery进行列表查询 1.概述 列表查询主要是指在一个指定的列表(或文档库)中按照某些筛选.排序条件进行查询.列表查询主要使用SPQuery对象,以及SPList的GetItems方法,将SPQuery作为参数传递,返回查询到的列表条目集合,即SPListItemCollection类型. 在使用SPQuery进行列表查找的时候,其中一些属性指定了其查找的特性: Query属性:通过该属性指定CAML格式的筛选条件和排序条件(见上文),如果不指定,则默认返回范围内的所有条目: F

SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 3)

(四)使用SPSiteDataQuery进行多列表查询 1.概述 前面介绍的列表查询有很多优势,但是它的一个缺点就是一次只能在一个列表中进行查询,在SharePoint中,提供了一个跨网站.跨列表查询的机制.通过使用SPSiteDataQuery对象,以及SPWeb的GetSiteData方法,将SPSiteDataQuery作为参数,可以进行跨网站和跨列表的查询. 它与列表查询的相同之处在于: (1) 使用同样的Query属性确定筛选条件和排序条件(不支持分组条件): (2) 使用同样的Vie