• 给列表绑定EventHandler


    需求:在Sharepoint2010中增加一条记录时发送邮件给其他用户

    思路:给列表绑定一个EventHandler,重写Added方法

    步骤一:创建列表(TestEventHandlerList)

    步骤二:  创建类(TestListEventHandler)

     public class TestListEventHandler : SPItemEventReceiver
        {
            public override void ItemAdded(SPItemEventProperties properties)
            {
                //base.ItemAdded(properties);
                try
                {
                    SPListItem item = properties.ListItem;
                    string title = item["标题"].ToString();
                    string creator = "null";
                    string createTime = "null";
                    if (item["创建者"] != null)
                    {
                        creator = item["创建者"].ToString();
                    }
                    if (item["创建时间"] != null)
                    {
                        createTime = item["创建时间"].ToString();
                    }
    
                    new TimerExecute().SendMail("added"+title, creator+createTime);
                    
    
                }
                catch (Exception ex)
                {
                    MailMessage message = new MailMessage();
                    message.From = new MailAddress("xxx@xxx.com.cn");
                    message.To.Add("xx@xx.com.cn");
                    message.Subject = "error";
                    message.Body = ex.Source + "**" + ex.Message;
                    SmtpClient client = new SmtpClient("192.168.0.1");
                    client.Send(message);
                }
            }
            public override void ItemAdding(SPItemEventProperties properties)
            {
                //base.ItemAdding(properties);
                try
                {
                    SPListItem item = properties.ListItem;
                    if (item == null)
                    {
                        throw new Exception("properties.ListItem is null");
                    }
                    string title = "null";
                    if (item["标题"] == null)
                    {
                        title = item["标题"].ToString();
                    }
                    string creator = "null";
                    string createTime = "null";
                    if (item["创建者"] != null)
                    {
                        creator = item["创建者"].ToString();
                    }
                    if (item["创建时间"] != null)
                    {
                        createTime = item["创建时间"].ToString();
                    }
    
                    new TimerExecute().SendMail("adding"+title, creator + createTime);
                }
                catch (Exception ex)
                {
                    MailMessage message = new MailMessage();
                    message.From = new MailAddress("xxx@greatwall.com.cn");
                    message.To.Add("xxx@greatwall.com.cn");
                    message.Subject = "error";
                    message.Body = ex.Source+"**"+ex.Message ;
                    SmtpClient client = new SmtpClient("192.168.0.1");
                    client.Send(message);
                }
    
    
            }
        }
    

    步骤三: 把dll放到GAC目录中

    步骤四:写个winform程序把TestListEventHandler的事件绑定到TestEventHandlerList上

    private void button2_Click(object sender, EventArgs e)
            {
                try
                {
                    Type receiverType = typeof(TestListEventHandler);
                    //MessageBox.Show(receiverType.Assembly.FullName);
                    SPSite site = new SPSite("http://gwsps03");
                    SPWeb web = site.OpenWeb();
                    SPList lists = web.Lists.TryGetList("TestEventHandlerList");
                    //先卸载
                    foreach (SPEventReceiverDefinition def in lists.EventReceivers)
                    {
                        if (def.Assembly == receiverType.Assembly.FullName)
                        {
                            def.Delete();
                            break;
                        }
                    }
                    //string assName = "SharepointStudy, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b839543c1c684877";
                    string assName = receiverType.Assembly.FullName;
                    string claName = "SharepointStudy.TestListEventHandler";
                    lists.EventReceivers.Add(SPEventReceiverType.ItemAdded, assName, claName);
                    lists.EventReceivers.Add(SPEventReceiverType.ItemAdding, assName, claName); 
                    MessageBox.Show("部署成功");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

    步骤五:测试,增加一条记录,就收到邮件了,OK了.

     

  • 相关阅读:
    Android Studio 编译不通过,报错“找不到org.apache.http
    Android studio中出现非法字符时的部分解决方法
    eclipse项目导入到Android Studio Plugin with id 'android-library' not found
    将Eclipse代码导入到AndroidStudio的两种方式
    eclipse项目迁移到android studio(图文最新版)
    Android studio插件安装
    ViewPager PagerAdapter不更新视图
    Android:可扩展伸缩listview
    Android的崩溃错误报告之ACRA
    Android数据库ORMlite框架04
  • 原文地址:https://www.cnblogs.com/sportdog/p/2848877.html
Copyright © 2020-2023  润新知