Der Dropdown "gefilterte Parameter" im benutzerdefinierten Webpart mit Verbindungen "gefilterter Parameter"

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/901

Frage

Ich schreibe einen Webpart, der Verbindungen für die Verarbeitung von Werten in Bezug auf ein Geschäftsobjekt namens "Programmentität" verwenden muss. Es soll eine ID aufnehmen, die von einem vernetzten Web -Teil bereitgestellt, eine Verarbeitung durchführt und dann ein "Token" für den Konsum durch einen anderen verbundenen Webpart ausspuckt. Das Token ist nur die ID in einem anderen Format.

Ich habe das Dropdown-Menü korrekt wie folgt angezeigt:

Connections -> Send Program Entity Token To -> ...
            -> Get Program Entity ID From -> ...

Wenn ich einen Webpart in "Programmentitäts -ID abrufen" auswähle, wird ein Dialog angezeigt, in dem ich einen gefilterten Parameter auswählen kann. Der Dropdown von Parametern wird jedoch ausgegraut und sagt nur "keine Parameter". Hinweis: Der Webpart, mit dem ich eine Verbindung herstellen möchte, ist ebenfalls individuell und wurde möglicherweise nicht vollständig abgeschlossen und getestet, um einen Wert über eine Verbindung bereitzustellen.

Gibt es etwas, das erklärt, warum ich keine Verbindung herstellen kann? Hier ist der Code für meinen Webpart:

public class ProgramEntityTokenConverter : WebPart, ITransformableFilterValues
{
    public bool AllowAllValue
    {
    	get { return true; }
    }

    public bool AllowEmptyValue
    {
    	get { return false; }
    }

    public bool AllowMultipleValues
    {
    	get { return false; }
    }

    public string ParameterName
    {
    	get { return "ProgramEntityToken"; }
    }

    public ReadOnlyCollection<string> ParameterValues
    {
    	get { return new ReadOnlyCollection<string>(ConvertProgramEntityIDs()); }
    }

    [ConnectionProvider("Program Entity Token", "ProgramEntityToken", AllowsMultipleConnections = false)]
    public ITransformableFilterValues SetConnectionInterface()
    {
    	return this;
    }

    private IList<string> ConvertProgramEntityIDs()
    {
    	return null; // TODO
    }

    [ConnectionConsumer("Program Entity ID", "ProgramEntityID", AllowsMultipleConnections = false)]
    public void SetFilter(IFilterValues filterValues)
    {
    	if (filterValues != null)
    	{
    		EnsureChildControls();
    		List<ConsumerParameter> parameters = new List<ConsumerParameter>();
    		parameters.Add(new ConsumerParameter("ProgramEntityID", ConsumerParameterCapabilities.SupportsSingleValue));
    		filterValues.SetConsumerParameters(new ReadOnlyCollection<ConsumerParameter>(parameters));
    	}
    }
}
War es hilfreich?

Lösung

Jetzt behoben durch Ändern dieser Zeile:

parameters.Add(new ConsumerParameter("ProgramEntityID", 
    ConsumerParameterCapabilities.SupportsSingleValue));

zu dieser Zeile:

parameters.Add(new ConsumerParameter("ProgramEntityID", 
    ConsumerParameterCapabilities.SupportsSingleValue | 
    ConsumerParameterCapabilities.SupportsAllValue));

Der Web -Teil, mit dem ich versuchte, eine Verbindung herzustellen, hatte das AllowAllValue Eigentum auf wahr eingestuft, was eindeutig von ausgeschlossen wurde durch ConsumerParameterCapabilities.


Abgesehen davon habe ich auch versucht:

parameters.Add(new ConsumerParameter("ProgramEntityID", 
    ConsumerParameterCapabilities.SupportsMultipleValues | 
    ConsumerParameterCapabilities.SupportsAllValue));

... Allerdings im Web -Teil, mit dem ich eine Verbindung herstelle, hat AllowMultipleValues Set auf false! Es scheint seltsam, dass das ConsumerParameterCapabilities erzwingt mögliche Verbindungen nach AllowAllValue aber AllowMultipleValues nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top