下面示例代码是一个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, 100truefalse);
            view.Update();
           
        }

    }

}
posted on 2008-08-14 16:32  blogsweb  阅读(144)  评论(0)    收藏  举报