vs2008 创建自定义任务批处理webpart

来源:互联网 发布:安居客网络经纪人 编辑:程序博客网 时间:2024/06/01 19:16

    一直编写一个webpart,但网上的都过于简单,正好公司有个需求要求做工作流任务的批处理(moss的任务列表就有批处理,但自己开发的工作流不支持,哎,有高人知道如何设置或编写相应代码么?指点一下)。

   下面先说一下环境,VS2008必备的,还需要安装一个插件,用来创建sharepoint的WEB部件模板,具体下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=14D5D92F-C3A6-407C-AAD7-B8C41A4991BE&displaylang=en

OK,接下来创建一个WebPart,vs会生成一些代码 如下:

 

所有的控件都将在函数CreateChildControls()执行。看到注释了么?注释就是简单的将一个LABEL添加到WEBPART中了。

 

言归正传,个人分析做批处理任务分几个步骤

1.获取到指定的任务--通过用Query来获取

2.用SPgridView显示任务列表--添加SPgridView,设计样式

3.选择要完成的任务--在SpGridView中添加checkbox

4.提交任务--利用SPworkflow Update任务

 

好了,所有事情分步骤后就很清晰的去实现吧。

实现1

创建一个datetabl数据源

 

思路为当前SPWEB的任务列表利用SPquery来获取想要的任务数据源,很简单吧。

 

设计了一下webpart布局

 private void CreateUI()
        {
            this.UITable = new Table();
            TableRow row = new TableRow();
            TableCell cell = new TableCell();
            row.Cells.Add(cell);
            this.UITable.Rows.Add(row);

            row = new TableRow();
            cell = new TableCell();
            row.Cells.Add(cell);
            this.UITable.Rows.Add(row);

            this.Controls.Add(this.UITable);
        }

整体为一个table 第一cell为按钮和报错信息 第二个cell为SPGridView

 

添加按钮和报错信息label

 

实现2,3

添加最重要的grid了

 

值得说明的几点:1.绑定的数据源要为ObjectDataSource 2.添加TemplateField到SPGridView,此模板用来添加checkbox

3.利用SPMenuField来给数据添加菜单及操作,效果可以和MOSS的文档库一样。

实现4

更新任务

 

Hashtable 里的值要与工作流的参数对应,这样工作流才能接收到值去判断流程走向。

AlterTask就可以更新工作流了。

到这里大概的一个流程就说完了,如果想下载的可以再站内去搜索一下资源,当然有些参数我也设置成了属性,显示数量和任务的链接都升级为属性,可以从修改webpart中编辑。

此webpart还有些BUG,比如翻页后保存之前选择的项,还有添加链接后有时会丢失

 

 

筛选

 

菜单