可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加、删除、修改文档)
2012-01-18 18:02
826 查看
1、测试文档库(Doclib1、Doclib2):
增加一栏“测试栏1”。
2、新建“可视化web部件项目”,添加“解决方案资源管理器”里边选中项目右键“添加”-“新建项”-"事件接收器“
如图操作,选择”列表项事件“和”文档库“集相应处理事件
实现代码:
部署测试如下
操作Doclib1文档库,上传修改文档
查看Doclib2文档库,相应文档也已上传修改
增加一栏“测试栏1”。
2、新建“可视化web部件项目”,添加“解决方案资源管理器”里边选中项目右键“添加”-“新建项”-"事件接收器“
如图操作,选择”列表项事件“和”文档库“集相应处理事件
实现代码:
using System; using System.Security.Permissions; using Microsoft.SharePoint; using Microsoft.SharePoint.Security; using Microsoft.SharePoint.Utilities; using Microsoft.SharePoint.Workflow; namespace TestFileReceiver.EventReceiverTest { /// <summary> /// 列表项事件 /// </summary> public class EventReceiverTest : SPItemEventReceiver { /// <summary> /// 正在添加项. /// </summary> public override void ItemAdding(SPItemEventProperties properties) { base.ItemAdding(properties); } /// <summary> /// 正在更新项. /// </summary> public override void ItemUpdating(SPItemEventProperties properties) { base.ItemUpdating(properties); } /// <summary> /// 正在删除项. /// </summary> public override void ItemDeleting(SPItemEventProperties properties) { string url = properties.OpenWeb().Url; using (SPSite site = new SPSite(url)) { using (SPWeb web = site.OpenWeb()) { if (properties.ListTitle == "Doclib1")//判断操作的文档库是否是Doclib1 { if (properties.ListItem.FileSystemObjectType == SPFileSystemObjectType.File)//判断增加的项的类型是否是文件 { SPFolder tagetfolder = web.Folders["Doclib2"]; SPFile file = properties.ListItem.File; string filename = properties.ListItem.Name; for (int i = 0; i < tagetfolder.Files.Count; i++) { string spfilename = tagetfolder.Files[i] == null ? "" : tagetfolder.Files[i].Name; if(filename==spfilename) { tagetfolder.Files[i].Delete(); } } } } } } } /// <summary> /// 已添加项. /// </summary> public override void ItemAdded(SPItemEventProperties properties) { string url = properties.OpenWeb().Url; using(SPSite site=new SPSite (url)) { using (SPWeb web = site.OpenWeb()) { if (properties.ListTitle == "Doclib1")//判断操作的文档库是否是Doclib1 { if (properties.ListItem.FileSystemObjectType == SPFileSystemObjectType.File)//判断增加的项的类型是否是文件 { SPFolder tagetfolder = web.Folders["Doclib2"]; SPFile file = properties.ListItem.File; string filename = properties.ListItem.Name; file.CopyTo(url+"/"+tagetfolder.Url+"/"+filename); } } } } } /// <summary> /// 已更新项. /// </summary> public override void ItemUpdated(SPItemEventProperties properties) { string url = properties.OpenWeb().Url; using (SPSite site = new SPSite(url)) { using (SPWeb web = site.OpenWeb()) { if (properties.ListTitle == "Doclib1")//判断操作的文档库是否是Doclib1 { if (properties.ListItem.FileSystemObjectType == SPFileSystemObjectType.File)//判断增加的项的类型是否是文件 { SPFolder tagetfolder = web.Folders["Doclib2"]; SPListItem item = properties.ListItem; item.CopyTo(url + "/" + tagetfolder.Url + "/" + item.Name); } } } } } /// <summary> /// 已删除项. /// </summary> public override void ItemDeleted(SPItemEventProperties properties) { base.ItemDeleted(properties); } } }
部署测试如下
操作Doclib1文档库,上传修改文档
查看Doclib2文档库,相应文档也已上传修改
相关文章推荐
- 可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加、删除、修改文档)
- 可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加、删除、修改文档)
- 利用ErlyDB、Mysql来实现表的添加、删除、修改、查询操作
- 这是一个关于XML文档的操作管理器XMLHelper类,类中包括XML文档的创建,文档节点和属性的读取,添加,修改,删除的方法功能的实现
- 项目经验之:利用Jquery+HTML静态模版实现数据的展示及无刷新增加,修改,删除,分页操作!!!
- 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)
- Xamarin.Android 入门实例(4)之实现对 SQLLite 进行添加/修改/删除/查询操作
- csdn 在c++ builder中,使用treeview实现对xml文档增加删除修改和查询等基本操作
- 使用Map集合开发电话簿程序,以电话号码为key,姓名为value,实现电话号码的添加,查询和删除 操作
- 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)
- 利用DhtmlXtree实现展现,修改,添加,删除,移动功能一棵树上实现,iframe的单个滑动条显示,包含在iframe中树节点中文内容过长问题解决
- vb.net 利用ADO实现数据库的删除、插入、修改操作(adodb)
- vb 利用ADO.Net实现数据库的连接,修改,删除,插入操作
- 使用触发器操作表1(添加,更新,删除) 同步实现表2的操作
- SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete) 一条语句实现两表同步(添加、删除、修改)
- 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) .
- 利用Jquery+HTML静态模版实现数据的展示及无刷新增加,修改,删除,分页操作!
- 树的基本结构,以及利用链表实现树的各项操作(创建、添加/删除/打印树节点、销毁等等)
- 利用SQL语句进行添加、删除、修改字段,表与字段的基本操作,数据库备份等
- 利用RecycleView实现类似ListView的Item点击,长按等操作事件以及点击后每一项在添加一个列表