Discapacitados desplegable “Filtrado de parámetros” en la parte web personalizado con conexiones

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

Pregunta

Estoy escribiendo una pieza de la tela que tiene que utilizar conexiones para el procesamiento de los valores relativos a un objeto de negocio denominada "Entidad de programa". Se supone que tomar en una identificación proporcionada por un elemento web conectado, lleve a cabo algún tipo de procesamiento, y luego escupir un 'símbolo' para el consumo mediante una pieza conectada diferente. El token es sólo el ID en otro formato.

Tengo el menú desplegable se muestra correctamente de la siguiente manera:

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

Cuando selecciono un elemento web en "Obtener Entidad de programa de identificación de", aparece un diálogo para mí elegir un filtrado de parámetros. Sin embargo en el menú desplegable de parámetros está en gris y sólo dice "No Parámetros". Nota:. La parte web que estoy intentando conectar con También es costumbre y no se ha finalizado completamente y probado para proporcionar un valor medio de una conexión

¿Hay algo que explica por qué no soy capaz de configurar una conexión? Aquí está el código de mi parte web:

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));
    	}
    }
}
¿Fue útil?

Solución

Ahora solucionar cambiando esta línea:

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

a esta línea:

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

La pieza de la tela que estaba tratando de conectarse a tenido el conjunto de propiedades a AllowAllValue cierto que fue claramente excluida por ConsumerParameterCapabilities.


Como acotación al margen, también probé:

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

... sin embargo, la parte web que estoy conectando tiene AllowMultipleValues conjunto de falsa! Parece extraño que hace cumplir ConsumerParameterCapabilities posibles conexiones de acuerdo con AllowAllValue pero AllowMultipleValues no lo hace.

Licenciado bajo: CC-BY-SA con atribución
scroll top