一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
1.查询列表的所有字段
SPSite site = new SPSite("http://carysun");
SPWeb web=site.OpenWeb();
SPList list = web.GetList("/IT Infrastructure");
foreach (SPField sf in list.Fields)
{
Console.WriteLine(sf.Title);
}
site.dispose();
web.dispose();
2.使用对象模型创建列表,SPListTemplateType.Announcements指定使用通知内容类型作为模板来创建。
注意一定要调用Update()方法。
string listName="AnnouList";
foreach(SPList currList in web .Lists)
{
if(currList.Title.Equals(listName,StringComparison.InvariantCultureIgnoreCase))
{
list=currList;
break;
}
}
if(list==null)
{
Guid listID=web.Lists.Add(listName,"New nnouncements",SPListTemplateType.Announcements);
list=web.Lists[listID];
list.OnQuickLaunch=true;
list.Update();
}
3.使用对象模型给列表添加item,注意一定要调用Update()方法。
SPListItem newItem = null;
newItem = list.Items.Add();
newItem["Title"] = "AnnouItem1";
newItem["Body"] = "The first AnnouItem1 ";
newItem["Expires"] = DateTime.Now + TimeSpan.FromDays(2);
newItem.Update();
newItem = list.Items.Add();
newItem["Title"] = "AnnouItem2";
newItem["Body"] = "The second AnnouItem2.";
newItem["Expires"] = DateTime.Now + TimeSpan.FromDays(5);
newItem.Update();
4.查询item的相关信息
foreach (SPListItem listItem in list.Items)
{
foreach (SPField field in list.Fields)
{
if (!field.Hidden && !field.ReadOnlyField)
Console.WriteLine("{0} = {1}", field.Title, newItem[field.Id]);
}
}
5. 如果你要想得到一个列表的item,你可以通过WebId, ListId, and ID来得到.
SPWeb parentWeb = web.Site.OpenWeb(new Guid(row["WebId"].ToString()));
SPList list = parentWeb.Lists[ new Guid(row["ListId"].ToString()) ];
SPListItem item = list.GetItemById((int.Parse(row["ID"].ToString())));
6.使用SPQuery来查询列表中item信息:
SPQuery query = new SPQuery();
query.ViewFields = @"<FieldRef Name='Title'/><FieldRef Name='Created'/>";
query.Query = @"<Where>
<Neq>
<FieldRef Name='Created' />
<Value Type='DateTime'>
<Today /></Value>
</Neq>
</Where>";
SPList list = web.Lists["AnnouList"];
SPListItemCollection items = list.GetItems(query);
foreach (SPListItem expiredItem in items)
{
Console.WriteLine(expiredItem["Title"]);
Console.WriteLine(expiredItem["Created"]);
}
6.1. ViewFields 表示你查询后要返回的字段
6.2. Query表示查询过滤的表达式,使用CAML语言
7. 使用SPSiteDataQuery来查询列表中item信息
SPSiteDataQuery query = new SPSiteDataQuery();
query.Lists = @"<Lists ServerTemplate='104' />";
query.ViewFields = @"<FieldRef Name='Title'/><FieldRef Name='Created'/>";
query.Webs = "<Webs Scope='SiteCollection' />";
string queryText =@"<Where>
<Neq>
<FieldRef Name='Created' />
<Value Type='DateTime'>
<Today /></Value>
</Neq>
</Where>";
query.Query = queryText;
DataTable table = web.GetSiteData(query);
foreach (DataRow row in table.Rows)
{
Console.WriteLine(row["Title"].ToString() + row["Created"].ToString());
}
7.1. query.Lists = @"<Lists ServerTemplate='104' />";中104代表通知列表类型
7.2 query.Webs = "<Webs Scope='SiteCollection' />";为查询的范围。
7.3. CAML的基本格式是这样的:“<Where><operator><operand /><operand /></operator> </Where>”.
7.4.使用SPQuery返回的是SPListItemCollection,而SPSiteDataQuery可以从不同的列表或是整个网站集查,实际上是返回了一个ADO.NET DataTable对象。
7.5 下表是CAML查询的一些简单说明:
元素 |
说明 |
And |
并且 |
BeginsWith |
以某字符串开始的 |
Contains |
包含某字符串 |
Eq |
等于 |
FieldRef |
一个字段的引用 (在GroupBy 中使用) |
Geq |
大于等于 |
GroupBy |
分组 |
Gt |
大于 |
IsNotNull |
非空 |
IsNull |
空 |
Leq |
小于等于 |
Lt |
小于 |
Neq |
不等于 |
Now |
当前时间 |
Or |
或 |
OrderBy |
排序 |
Today |
今天的日期 |
TodayIso |
今天的日期(ISO格式) |
Where |
Where子句 |
相关文章
一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
我们经常会在SharePoint网站集的权限列表中看到某个user有LimitedAccessPermission,但是我们都知道或者试过,在SharePointsitecollection中没有办法直接添加user赋予LimitedAccess权限,并且LimitedAccess这个......
2023-01-12
在这样的场景下,比如统计员工的个人信息,IT会在SharePoint中新建list,加一些需要填写的栏位,然后让公司员工登录填写。这时候比起大家都能看到彼此信息而言,从公司角度更想让员工只能......
2023-01-12
大多数企业使用SharePoint文档库时,都会建议EndUser在编辑文档前先做CheckOut动作,这样可以保证文档在当前用户编辑过程中,其他人只能view而不能edit,防止多人同时修改同一文件互相影响的......
2023-01-12
为了记录SharePointLibrary/List中file/Item的修改情况,ITAdministrator会在List/Library的VersionSettings中开启Version管控设置。之后用户每次编辑item/file保存就会生成一个新的version记录,这样我们就会知道......
2023-01-12