2010-09-17 53 views
4

我使用Sharepoint,尝试连接具有多个参数的Web部件。ITransformableFilterValues具有两个或更多参数的接口[SharePoint WebParts]

我的问题是如何从custome web部件传递多个参数到另一个参数。

我能够通过在自定义Web部件中实现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; 
    } 

感谢您的帮助。抱歉我的英语。

回答

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; 
} 
0

确保报告参数处于可见模式。它为我工作。试试看

感谢 维韦克

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; 
} 
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后呈现,我看到两个连接可用。 尝试发送连接至ReportViewerWebPart窗口打开,让空参考后(我尝试创建对象时,它需要的,但它不工作)

感谢 -Samar