Sharepoint 2010 SharePoint Web部件能否连接到自定义SharePoint Web部件
我需要使用默认sharepoint筛选器Web部件传递的值。我不知道自定义sharepoint Web部件如何建立连接并获取数据。这可能吗 已更新 提供程序Web部件是默认的SharePoint列表筛选器Web部件。 消费者Web部件是自定义Web部件 这是我提出的代码,但是SharePoint页面上的“连接”选项仍然是灰色的。在页面上,我有一个SharePoint列表筛选器Web部件和我的CustomPageViewer Web部件Sharepoint 2010 SharePoint Web部件能否连接到自定义SharePoint Web部件,sharepoint-2010,Sharepoint 2010,我需要使用默认sharepoint筛选器Web部件传递的值。我不知道自定义sharepoint Web部件如何建立连接并获取数据。这可能吗 已更新 提供程序Web部件是默认的SharePoint列表筛选器Web部件。 消费者Web部件是自定义Web部件 这是我提出的代码,但是SharePoint页面上的“连接”选项仍然是灰色的。在页面上,我有一个SharePoint列表筛选器Web部件和我的CustomPageViewer Web部件 namespace PageViewerWithConnec
namespace PageViewerWithConnections.CustomPageViewer
{
[ToolboxItemAttribute(false)]
public class CustomPageViewer : System.Web.UI.WebControls.WebParts.WebPart
{
IFilterValues _filterVals;
[ConnectionConsumer("Consumer connection", "Consumer param")]
public void ConsumeFilter(IFilterValues filterValues)
{
_filterVals = filterValues;
}
Microsoft.SharePoint.WebPartPages.PageViewerWebPart objPageViewer;
protected override void CreateChildControls()
{
}
}
}
这种方法的原因
我的目标是根据从SharePoint列表过滤器Web部件获得的值,为页面查看器Web部件设置不同的URL。SharePoint列表筛选器Web部件似乎无法将数据发送到页面查看器Web部件。您需要在自定义Web部件上创建一个使用者方法,该方法将
IFilterValues的实例作为参数,并使用ConnectionConsumerAttribute
属性
namespace PageViewerWithConnections.CustomPageViewer
{
[ToolboxItemAttribute(false)]
public class CustomPageViewer : System.Web.UI.WebControls.WebParts.WebPart
{
IFilterValues _filterVals;
[ConnectionConsumer("Consumer connection", "Consumer param")]
public void ConsumeFilter(IFilterValues filterValues)
{
_filterVals = filterValues;
}
Microsoft.SharePoint.WebPartPages.PageViewerWebPart objPageViewer;
protected override void CreateChildControls()
{
}
}
}
private IFilterValues _filterVals;
[ConnectionConsumer("Filter Consumer", "FilterConsumer")]
public void ConsumeFilter(IFilterValues filterValues)
{
_filterVals = filterValues;
}
请注意,筛选器值的使用发生在页面生命周期的OnPreRender
阶段,因此您需要重写OnRender
方法以对连接中使用的任何值进行操作,或者在consumer方法中包含逻辑
有关更多信息,请查看以下链接:
在CreateChildControls中,您应该调用base.CreateChildControls()
以下是一些工作代码:
列表提供程序=新列表()
受保护的覆盖无效CreateChildControls()
{
if(providers.Count>0&&providers[0]。参数值!=null)
{
this.FilterValue1=提供程序[0]。参数值[0];
}
base.CreateChildControls();
}
[ConnectionConsumer(“提供程序Web部件”、“IFilterValue”、AllowsMultipleConnections=false)]
public void SetConnectionInterface(IFilterValues提供程序)
{
if(提供程序!=null)
{
this.providers.Add(provider);
列表参数=新列表();
添加(新的使用者参数(“参数1”),
ConsumerParameterCapabilities.SupportsSingleValue | ConsumerParameterCapabilities.SupportsEmptyValue | ConsumerParameterCapabilities.SupportsAllValue));
SetConsumerParameters(新的只读集合(参数));
}
}
Hi Kyle,我用一些代码更新了问题,但web部件上的“connections”属性仍然变灰。您使用的是哪个列表筛选器web部件?这是一个开箱即用的web部件,还是您安装的东西?我相信它是开箱即用的web部件。消费者web部件是SharePoint 2010“可视web部件”吗?