悠闲小风专栏

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

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