下面示例代码是一个EventHandler,作用是:当用户在某个列表中增加一个列表项时,该EventHandler会自动在另一个文档库中增加一个列(该列是一个Boolean类型),然后再增加一个视图,视图的查询条件是新增的列值为真。示例代码如下:
using System;
using System.Collections.Generic;
using System.Text;

using Microsoft.SharePoint;

namespace demo.EventHandlers
{
class EHAddLibraryCol : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
SPListItem item = properties.ListItem;
string createColName = item["分类名称"].ToString(); //分类名称是列表项中的一个字段
SPWeb myWeb = properties.OpenWeb();
SPList lib = myWeb.Lists["风险知识库"]; //风险知识库是一个文档库
string temp = lib.Fields.Add(createColName, SPFieldType.Boolean, false);//为文档库创建一个列
lib.Update();

SPViewCollection views = lib.Views;

System.Collections.Specialized.StringCollection viewFields =
new System.Collections.Specialized.StringCollection();

viewFields.Add("类型");
viewFields.Add("名称");
viewFields.Add("修改时间");
viewFields.Add("修改者");

string fieldInternalName = lib.Fields[createColName].InternalName;

string query = "<Where><Eq><FieldRef Name=\"" + fieldInternalName + "\" /><Value Type=\"Boolean\" >1</Value></Eq></Where>";
//注意,该处的Name一定要用字段的InternalName属性值,否则视图将找不到相应的字段正常显示
SPView view = views.Add(createColName, viewFields, query, 100, true, false);
view.Update();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace demo.EventHandlers
{
class EHAddLibraryCol : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
SPListItem item = properties.ListItem;
string createColName = item["分类名称"].ToString(); //分类名称是列表项中的一个字段
SPWeb myWeb = properties.OpenWeb();
SPList lib = myWeb.Lists["风险知识库"]; //风险知识库是一个文档库
string temp = lib.Fields.Add(createColName, SPFieldType.Boolean, false);//为文档库创建一个列
lib.Update();
SPViewCollection views = lib.Views;
System.Collections.Specialized.StringCollection viewFields =
new System.Collections.Specialized.StringCollection();
viewFields.Add("类型");
viewFields.Add("名称");
viewFields.Add("修改时间");
viewFields.Add("修改者");
string fieldInternalName = lib.Fields[createColName].InternalName;
string query = "<Where><Eq><FieldRef Name=\"" + fieldInternalName + "\" /><Value Type=\"Boolean\" >1</Value></Eq></Where>";
//注意,该处的Name一定要用字段的InternalName属性值,否则视图将找不到相应的字段正常显示
SPView view = views.Add(createColName, viewFields, query, 100, true, false);
view.Update();
}
}
}


浙公网安备 33010602011771号