悠闲小风专栏

SharePoint & Workflow 解决方案

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  56 随笔 :: 0 文章 :: 33 评论 :: 46815 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

sharepoint站点Feature的定制与开发中讲了Feature,在sharepoint列表EventHandle的开发中讲了Event(简称)(,但这两者之间能不能建立起关系呢?答案是肯定的。下面我就介绍个例子,用站点的Feature来控制列表Event事件的工作。在开始做例子之前呢,还是先讲一下大概效果:当激活Feature时,列表的Event开始工作,当列表新增一个文档项时,同时会向数据库表中加入相关数据记录。当Feature被停止时,Event也停止工作,这时新建文档时,不会再向数据库表中加入数据记录。
做这个例子呢,会延用前面介绍的两个例子:
sharepoint站点Feature的定制与开发sharepoint列表EventHandle的开发中的一些步骤(如不清楚,请先看这两篇应用,再往下看),好进一步加深对前面例子的里解。当然也要合理的利用资源嘛,这样才能达到功能的扩展。呵呵,回归正题,赶紧进入DEMO:
第一步:
开发部署上Event。这里就按照sharepoint列表EventHandle的开发中的第一、第二步进行。先建数据库表,再用VS创建类库项目,项目名称为“EventHandle”(参照例子)。完成Event开发。
第二步:
开发部署Feature。这里也是延用sharepoint站点Feature的定制与开发中的工程项目“FeatureToRunCode”,但MyCode.cs的代码将被修改为:

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;

namespace FeatureToRunCode
{
    public class MyCode:SPFeatureReceiver
    {

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {//当激活Feature时,起用报销单库的增删改事件


            SPWeb web = (SPWeb)properties.Feature.Parent;
            web.AllowUnsafeUpdates = true;
            SPList list = web.Lists["报销单"];
            string asmName = "EventHandle, Version=1.0.0.0, Culture=neutral, PublicKeyToken=01dc07d3d1e20903";
            string className = "EventHandle.listEventHandle";

            //这是调用列表增删改事件的方法
            list.EventReceivers.Add(SPEventReceiverType.ItemAdded, asmName, className);
            list.EventReceivers.Add(SPEventReceiverType.ItemUpdated, asmName, className);
            list.EventReceivers.Add(SPEventReceiverType.ItemDeleting, asmName, className);
            web.Close();
        }
        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            //当停止Feature时,取消Feature事件
            SPWeb web = (SPWeb)properties.Feature.Parent;
            web.AllowUnsafeUpdates = true;
            SPList list = web.Lists["报销单"];
            for (int i = list.EventReceivers.Count-1; i >=0; i--)
            {
                 //这是清除列表增删改事件的方法

                list.EventReceivers[i].Delete();
              
            }

              web.Close();
        }
        public override void FeatureInstalled(SPFeatureReceiverProperties properties)
        {

        }
        public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
        {

        }

    }
}

保存,重新生成项目。将重新生成的FeatureToRunCode.dll重新拖到C:\WINDOWS\assembly目录下,重启一下IIS。
这样就完成开发了。
第三步:
当然也是我们最关心的事了,就是查看效果了。首先呢,当然是先打开数据库表了,但看一下当前表中是什么数据,如图:

接着,进入网站设置---->网站功能---->找到“FeatureToRunCode”这个Feature,先将Feature设为停止状态,向报销单库里加入一条数据,看Event是否工作,如果数据库表里没有加入数据记录为成功(当然如果程序有错也不会成功,这可不算在内啊,呵呵)。当激活Feature时,向报销单库里加入一项表单数据(petpet费用报销单)时,如图:


数据库表中的记录也会相应的增加,如图:

这样,用Feature控制Event的功能就已经完成了。以后对Event的控制就方便了,不再需要用控制台之类的程序来代劳了,还能远程控制呢,真方便。有没有一种心动的感觉呢,那就快动手了......

posted on   陈典洪  阅读(551)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示