根据所创建Item的title自动实现分配到不同的folder下
2011-08-22 11:28
274 查看
using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;
namespace EventReceiverForMoveItem
{
/// <summary>
/// List Item Events
/// </summary>
public class EventReceiver1 : SPItemEventReceiver
{
/// <summary>
/// An item is being added.
/// </summary>
public override void ItemAdded(SPItemEventProperties properties)
{
SPSecurity.RunWithElevatedPrivileges(delegate
{
//读取XML文件,可以通过配置来选择通过item的filed判断。//XML文件 <configs><Filed>oneChoice</Filed><SecondFiled>twoChoice</SecondFiled>
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(@"c:\AvePointEvent.config");
System.Xml.XmlNode node = doc.SelectSingleNode("/configs/Filed");
string filed = node.InnerText;
System.Xml.XmlNode nodeSecond = doc.SelectSingleNode("/configs/SecondFiled");
string filedSecond = nodeSecond.InnerText;
SPWeb web = properties.Web;
SPList list = properties.List;
SPListItem item = properties.ListItem;
SPFile file = web.GetFile(item.Url);
string url = string.Empty;
foreach (SPListItem folder in list.Folders)
{
string tempItemFiled = item[filed].ToString().Replace("&", "");
if (folder.Name.Equals(tempItemFiled, StringComparison.CurrentCultureIgnoreCase))
{
if (!filedSecond.Equals(string.Empty))
{
string tempSecondFiled = item[filedSecond].ToString().Replace("&", "");
url = web.Url + "/" + folder.Url + "/" + tempSecondFiled + "/" + file.Name;
break;
}
else
{
url = web.Url + "/" + folder.Url + "/" + file.Name;
break;
}
}
}
try
{
file.MoveTo(url, SPMoveOperations.Overwrite);
}
catch (Exception ex)
{
url = web.Url + "/" + list.RootFolder.Url + "/UnMatch/" + file.Name;
file.MoveTo(url, SPMoveOperations.Overwrite);
}
web.Update();
base.ItemAdded(properties);
});
}
}
}
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;
namespace EventReceiverForMoveItem
{
/// <summary>
/// List Item Events
/// </summary>
public class EventReceiver1 : SPItemEventReceiver
{
/// <summary>
/// An item is being added.
/// </summary>
public override void ItemAdded(SPItemEventProperties properties)
{
SPSecurity.RunWithElevatedPrivileges(delegate
{
//读取XML文件,可以通过配置来选择通过item的filed判断。//XML文件 <configs><Filed>oneChoice</Filed><SecondFiled>twoChoice</SecondFiled>
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(@"c:\AvePointEvent.config");
System.Xml.XmlNode node = doc.SelectSingleNode("/configs/Filed");
string filed = node.InnerText;
System.Xml.XmlNode nodeSecond = doc.SelectSingleNode("/configs/SecondFiled");
string filedSecond = nodeSecond.InnerText;
SPWeb web = properties.Web;
SPList list = properties.List;
SPListItem item = properties.ListItem;
SPFile file = web.GetFile(item.Url);
string url = string.Empty;
foreach (SPListItem folder in list.Folders)
{
string tempItemFiled = item[filed].ToString().Replace("&", "");
if (folder.Name.Equals(tempItemFiled, StringComparison.CurrentCultureIgnoreCase))
{
if (!filedSecond.Equals(string.Empty))
{
string tempSecondFiled = item[filedSecond].ToString().Replace("&", "");
url = web.Url + "/" + folder.Url + "/" + tempSecondFiled + "/" + file.Name;
break;
}
else
{
url = web.Url + "/" + folder.Url + "/" + file.Name;
break;
}
}
}
try
{
file.MoveTo(url, SPMoveOperations.Overwrite);
}
catch (Exception ex)
{
url = web.Url + "/" + list.RootFolder.Url + "/UnMatch/" + file.Name;
file.MoveTo(url, SPMoveOperations.Overwrite);
}
web.Update();
base.ItemAdded(properties);
});
}
}
}
相关文章推荐
- C++写日志源代码分析,可实现根据日期自动创建文件夹、日志分类、文件大小控制等
- flume+kafka实现根据消息的标识分配到不同的分区
- js实现根据浏览器类型自动调用不同CSS文件[收藏]
- Delphi实现Listbox中的item根据内容显示不同颜色的方法
- 三层交换机为不同VLAN自动分配IP地址实现
- Android 根据item大小实现自动排列的GridLayout
- C#实现根据实体类自动创建数据库表
- 在火狐和chrome不同的自动填充密码机制下实现根据密码框是否有内容来添加不同类的功能
- 根据浏览器和分辨率不同自动调用CSS样式表 (jscript实现)
- 使用autolayout的NSLayoutConstraint类中的constraintWithItem 、constraintsWithVisualFormat这两个类方法来创建视图并可以实现自动布局
- VC++编程实现IP地址自动分配??
- 搜索框根据输入自动提示--js实现
- iOS 在一个屏幕中根据不同的按钮创建不同的 view
- 一个ListView根据标识加载不同布局,很简单的例子,就是聊天界面,你说话在右边好友在左边怎么实现呢.
- Android RecyclerView中实现自定义GridView的方式(实现不同item)
- linux 实现自动创建ftp用户并创建文件夹
- sdcms实现根据不同的分类下边显示子分类的导航
- 利用DHCP中继代理解决不同网段IP自动分配
- 根据学校的业务需求,主攻关于高校自动排课的算法实现
- 页面根据不同Url显示不同Title以及不同的Mete