一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
前面我们提到关于sharepoint 如何扩展webpart自定义属性边栏字段 custom webpart properties,这次主要是要实现,如果让一个webpart给另一个webpart传值。在sharepoint中,有提供了一种方法,就是用[ConnectionProvider("WebpartConnectionProvider")] 和[ConnectionConsumer("WebpartConnectionConsumer")],其中的ConnectionProvider这个属性是数据提供着,参数值代表显示名称;ConnectionConsumer这个属性是数据接收者,参数值也是代表显示名称。
实现这样的功能,有一下几个步骤。
1。新建一个Interface接口,IGetName.cs
public interface IGetName
{
string Name { get; set; }
}
2。新建两个个可视化部件,WebpartConnectionProvider和WebpartConnectionConsumer
WebpartConnectionProvider.ascx
<asp:TextBox ID="txtstr" runat="server"></asp:TextBox>
< asp:Button ID="BtnProvider"
runat="server" Text="发送" οnclick="BtnProvider_Click" />
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
namespace WebpartBarTest.WebpartConnectionProvider
{
public partial class WebpartConnectionProviderUserControl : UserControl
{
public WebpartConnectionProvider WebPart { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
}
protected void BtnProvider_Click(object sender, EventArgs e)
{
WebPart.Name = txtstr.Text;
}
}
}
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
namespace WebpartBarTest.WebpartConnectionProvider
{
[ToolboxItemAttribute(false)]
public class WebpartConnectionProvider : WebPart, IGetName
{
// 当更改可视 Web 部件项目项时,Visual Studio 可能会自动更新此路径。
private const string _ascxPath = @"~/_CONTROLTEMPLATES/WebpartBarTest/WebpartConnectionProvider/WebpartConnectionProviderUserControl.ascx";
protected override void CreateChildControls()
{
WebpartConnectionProviderUserControl control = Page.LoadControl(_ascxPath) as WebpartConnectionProviderUserControl;
if (control != null)
{
control.WebPart = this;
}
Controls.Add(control);
}
string _Name = "";
public string Name
{
get { return _Name; }
set { _Name = value; }
}
[ConnectionProvider("WebpartConnectionProvider")]
public IGetName GetName()
{
return this as IGetName;
}
}
}
WebpartConnectionConsumer.ascx
传输过来的值是:<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
namespace WebpartBarTest.WebpartConnectionConsumer
{
[ToolboxItemAttribute(false)]
public class WebpartConnectionConsumer : WebPart
{
// 当更改可视 Web 部件项目项时,Visual Studio 可能会自动更新此路径。
private const string _ascxPath = @"~/_CONTROLTEMPLATES/WebpartBarTest/WebpartConnectionConsumer/WebpartConnectionConsumerUserControl.ascx";
public Label lbl;
protected override void CreateChildControls()
{
Control control = Page.LoadControl(_ascxPath);
lbl = (Label)control.FindControl("Label1");
if (providerWebPart != null)
{
lbl.Text =providerWebPart.Name;
}
Controls.Add(control);
}
public IGetName providerWebPart;
[ConnectionConsumer("WebpartConnectionConsumer")]
public void ReceiveName(IGetName provider)
{
providerWebPart = provider;
}
}
}
3。部署到网站上。在页面上添加这两个webpart.如下图:
4。配置webpart连接,如下图,选择连接,发送对象,将consumer勾上。
5。保存编辑页面,如下图
接下来我们再文本框输入:广州京微信息科技有限公司,点击发送,把这个值,传给Consumer这个webpart接收,如下图:
如果我们继续数据其它的值,例如https://www.office26.com ,如下图:
这次主要是记录一下,如何用webpart给另一个webpart提供参数值,也就是我们常说的,webpart与webpart联动,连接。
相关文章
一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
我们经常会在SharePoint网站集的权限列表中看到某个user有LimitedAccessPermission,但是我们都知道或者试过,在SharePointsitecollection中没有办法直接添加user赋予LimitedAccess权限,并且LimitedAccess这个......
2023-01-12
在这样的场景下,比如统计员工的个人信息,IT会在SharePoint中新建list,加一些需要填写的栏位,然后让公司员工登录填写。这时候比起大家都能看到彼此信息而言,从公司角度更想让员工只能......
2023-01-12
大多数企业使用SharePoint文档库时,都会建议EndUser在编辑文档前先做CheckOut动作,这样可以保证文档在当前用户编辑过程中,其他人只能view而不能edit,防止多人同时修改同一文件互相影响的......
2023-01-12
为了记录SharePointLibrary/List中file/Item的修改情况,ITAdministrator会在List/Library的VersionSettings中开启Version管控设置。之后用户每次编辑item/file保存就会生成一个新的version记录,这样我们就会知道......
2023-01-12