悠闲小风专栏

SharePoint & Workflow 解决方案

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

     上一篇介绍了如何自定义WebPart属性,这篇笔者将介绍如何实现两个WebPart之间的数据交互,前面有提到过QuickPart包括了QuickPart ProviderQuickPart Consumer,其中Provider是数据发送方, Consumer是数据接收方,这里我们要做的事情是当左栏区域上Provider WebPart文件夹被选中时,右栏区域上Consumer WebPart就显示该文件夹下的所有文件,所以笔者在原有项目上新建一个WebUserControl用于显示文件列表

取名为,FileList.ascx,单击添加按钮,TreeCatalog.ascx控件中添加如下代码:

//声明该控件是数据的发送方

        [ConnectionProvider("Send The Folder's Url")]

        //获得选中文件夹的路径

        public string SendFolderUrl()

        {

            try

            {

                return tvTreeCatalog.SelectedNode.Value;

            }

            catch(Exception e)

            {

                return "";

            }

     }

往新建的FileList.ascx控件上拖拽一个GridView控件,IDGvFileList

FileList.ascx.cs页面代码如下:

//声明为数据的接收方

        [ConnectionConsumer("Receive The Folder's URL")]  

//接收TreeCatalog发送过来的URL,并将文件夹下的所有文件绑定至GridView控件上

        public void ReceiveFolderUrl(string url)

        {

            //获得当前的页面

            SPWeb spWeb = SPContext.Current.Web;

            //通过传过来的url获得文件夹

            SPFolder spFolder = spWeb.GetFolder(url);

            //创建一张临时表保存所有文件

            DataTable dtFileList = new DataTable();

            dtFileList.Columns.Add("类型");

            dtFileList.Columns.Add("文件名");

            dtFileList.Columns.Add("创建时间");

            //遍历文件夹下的所有文件

            foreach (SPFile spFile in spFolder.Files)

            {

                DataRow drFileList = dtFileList.NewRow();

                drFileList["类型"] = spFile.IconUrl;

                drFileList["文件名"] = spFile.Name;

                drFileList["创建时间"] = spFile.TimeCreated.ToString();

                dtFileList.Rows.Add(drFileList);

            }

            //绑定数据源

            GvFileList.DataSource = dtFileList;

            GvFileList.DataBind();

     }

FileList.ascx页面前台源代码

生成项目,看到输出一栏显示成功复制一个.dll以及两个.ascx文件

打开SharePoint站点,进入文档中心子站点,依次选择网站操作->编辑页面

在右拦区域添加Web部件

找到并添加ConsumerQuickPart

编辑并修改共享Web部件

在页面右边的SideBar中选择FileList控件,单击确定按钮

通过上图方式将两个WebPart连接

重新打开Sharepoint网站后,选中其中的某个文件夹右边就会列出该文件夹下的所有文件,至此就实现了Provider WebPartConsumer WebPart之间的连接了,这一部分笔者就介绍到这里,下一篇将会介绍SideBar的定制

posted on 2009-03-28 13:08  陈典洪  阅读(503)  评论(0编辑  收藏  举报