2010-09-17 5 views
4

Je travaille avec Sharepoint et j'essaie de connecter des composants Web avec plusieurs paramètres.Interface ITransformableFilterValues ​​avec plusieurs paramètres [SharePoint WebParts]

Ma question est comment puis-je passer plus d'un paramètre d'une partie web custome à l'autre.

Je peux passer un paramètre en implémentant l'interface ITransformableFilterValues ​​dans la partie Web personnalisée, ce que je veux faire, c'est passer plus d'un paramètre (MyIndex2 par exemple).

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

Merci pour votre aide. Et désolé pour mon anglais.

Répondre

3

Créer une classe qui implémente l'interface ITransformableFilterValues ​​(plutôt que de la mettre en œuvre dans votre partie classe web)

class FilterValues : ITransformableFilterValues 
{ 
... 
} 

Dans votre partie principale de Web ont

FilterValues _fitler1; 
FitlerValues _filter2; 

(vous aurez évidemment besoin de définir les eux aussi)

Ajouter des méthodes pour retourner les différents filtres

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

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

Assurez-vous que les paramètres de rapport sont en mode visible. Cela a fonctionné pour moi. Essayez-le

Merci Vivek

0

Pour corriger votre code modifier comme suit:

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

Après la mise en place chaque chose Renders webpart, je vois deux connexion est disponible. Après avoir essayé d'envoyer la connexion à ReportViewerWebPart fenêtre et obtenir Ref ouvre Null (j'ai essayé objet la création comme quand il est nécessaire, mais sa ne fonctionne pas)

Merci -Samar

Questions connexes