ITransformableFilterValues与两个或多个参数的接口[SharePoint WebParts]

时间:2010-09-17 13:46:55

标签: sharepoint connection web-parts

我使用Sharepoint,并尝试使用多个参数连接Web部件。

我的问题是如何将多个参数从客户网站部件传递到另一个参数。

我可以通过在自定义webpart中实现ITransformableFilterValues接口来传递一个参数,我想要做的是传递多个参数(例如MyIndex2)。

    // Configure interface

    public bool AllowEmptyValue
    {
        get { return false; }
    }
    public bool AllowAllValue
    {
        get { return true; }
    }
    public bool AllowMultipleValues
    {
        get { return true; }
    }
    public string ParameterName
    {
        get { return "MyIndex"; }   // Name of provided parameter
    }
    public ReadOnlyCollection<string> ParameterValues
    {
        get
        {
            EnsureChildControls();               
            List<string> MyFilterValues = new List<string>();
            if (MyFilterValue != null)
            {
                MyFilterValues.Add(MyFilterValue); //Provided value for another web-part
            }                           

            ReadOnlyCollection<string> result = new ReadOnlyCollection<string>(MyFilterValues);
            return result;
        }
    }


    [ConnectionProvider("MyIndex", "UniqueIDForRegionConnection", AllowsMultipleConnections = true)]
    public ITransformableFilterValues SetConnection()
    {
        return this;
    }

感谢您的帮助。对不起我的英语。

4 个答案:

答案 0 :(得分:3)

创建一个实现ITransformableFilterValues接口的类(而不是在Web部件类中实现它)

class FilterValues : ITransformableFilterValues
{
...
}

在您的主要网络部分

FilterValues _fitler1;
FitlerValues _filter2;

(显然你也需要设置它们)

添加方法以返回不同的过滤器,例如

[ConnectionProvider("Filter 1", "UniqueIDForFilter1", 
AllowsMultipleConnections = true)]
public ITransformableFilterValues SetConnection()
{
    return _fitler1;
}

[ConnectionProvider("Filter 2", "UniqueIDForFilter2", 
AllowsMultipleConnections = true)]
public ITransformableFilterValues SetConnection2()
{
    return _fitler2;
}

答案 1 :(得分:0)

确保报告参数处于可见模式。它对我有用。试一试

由于 的Vivek

答案 2 :(得分:0)

修改代码修改如下:

[aspnetwebparts.ConnectionProvider("Season", "idSeason", AllowsMultipleConnections = true)]
public wsswebparts.ITransformableFilterValues SetConnectionSeason()
{
    return filterValuesSeason;
}

[aspnetwebparts.ConnectionProvider("Category", "idCategory", AllowsMultipleConnections = true)]
public wsswebparts.ITransformableFilterValues SetConnectionCategory()
{
    return filterValuesCategory;
}

答案 3 :(得分:0)

 filterValuesYear = new FilterValues("Year", ddlYear.SelectedValue);
        filterValuesQuarter = new FilterValues("Quarter", ddlQuarter.SelectedValue);

         [ConnectionProvider("Year", "performance_year", AllowsMultipleConnections = true)]
    public ITransformableFilterValues SetConnectionYear()
    {
        return filterValuesYear;
    }

    [ConnectionProvider("Quarter", "performance_monthly", AllowsMultipleConnections = true)]
    public ITransformableFilterValues SetConnectionQuarter()
    {
        return filterValuesQuarter;
    }

设置WebPart Renders的所有内容后,我看到两个连接都可用。 尝试发送连接到ReportViewerWebPart窗口后打开并获取Null Ref(我尝试创建对象,因为它需要但不起作用)

由于 -Samar