Compartir a través de


Paso 1: Desarrollar un ensamblado de elementos web de ASP.NET

Para crear un elemento web de consumidor de filtro, debe comenzar desarrollando un ensamblado de elemento web de ASP.NET. Normalmente puede crear uno normalmente mediante la creación de una biblioteca de clases con una clase que se derive de la clase base System.Web.UI.WebControls.WebParts.WebPart.

Para obtener más información acerca del desarrollo de ensamblados de ASP.NET, consulte la siguiente documentación de ASP.NET 2.0:

  • Inicio rápido sobre elementos web de ASP.NET

  • Documentación sobre elementos web de ASP.NET

  • Conexiones de elementos web de ASP.NET 2.0

Requisitos previos

En este tema se asume que está usando Microsoft Visual Studio 2005.

Para desarrollar un ensamblado de elemento web de ASP.NET

  1. Inicie Visual Studio 2005.

  2. Inicie un nuevo proyecto de bibliotecas de clases de C#.

  3. Agregue una referencia a System.Web, Microsoft.Office.Server, Microsoft.SharePoint y Microsoft.SharePoint.Portal.

  4. En el archivo .cs, copie y pegue el código siguiente:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using aspnetwebparts = System.Web.UI.WebControls.WebParts;
    using Microsoft.Office.Server.Utilities;
    using wsswebparts = Microsoft.SharePoint.WebPartPages;
    using Microsoft.SharePoint.Portal.WebControls;
    using System.Collections.ObjectModel;
    using Microsoft.SharePoint.Utilities;
    using System.Data;
    using System.Collections;
    
    namespace MyWebPartLibrary
    {
        public class SimpleFilterConsumerWebPart : aspnetwebparts.WebPart
        {
    
            List<wsswebparts.IFilterValues> providers = new List<wsswebparts.IFilterValues>();
    
    
            protected override void CreateChildControls()
            {
                base.CreateChildControls();
            }
    
    
            [aspnetwebparts.ConnectionConsumer("Simple Consumer", "IFilterValues", AllowsMultipleConnections = false)]
            public void SetConnectionInterface(wsswebparts.IFilterValues provider)
            {
                this.providers.Add(provider);
                if (provider != null)
                {
                    List<wsswebparts.ConsumerParameter> l = new List<wsswebparts.ConsumerParameter>();
                    l.Add(new wsswebparts.ConsumerParameter("Value", wsswebparts.ConsumerParameterCapabilities.SupportsMultipleValues | wsswebparts.ConsumerParameterCapabilities.SupportsAllValue));
                    provider.SetConsumerParameters(new ReadOnlyCollection<wsswebparts.ConsumerParameter>(l));
                }
            }
    
            protected override void RenderContents(HtmlTextWriter output)
            {
                this.EnsureChildControls();
                foreach (wsswebparts.IFilterValues provider in this.providers)
                {
                    if (provider != null)
                    {
                        string prop = provider.ParameterName;
                        ReadOnlyCollection<String> values = provider.ParameterValues;
    
                        if (prop != null && values != null)
                        {
                            output.Write("<div>" + SPEncode.HtmlEncode(prop) + ":</div>");
                            foreach (string v in values)
                            {
                                if (v == null)
                                {
                                    output.Write("<div>&nbsp;&nbsp;<i>&quot;(empty)&quot;/null</i></div>");
                                }
                                else if (v.Length == 0)
                                {
                                    output.Write("<div>&nbsp;&nbsp;<i>empty string</i></div>");
                                }
                                else
                                {
                                    output.Write("<div>&nbsp;&nbsp;" +v + "</div>");
                                }
                            }
                        }
                        else
                        {
                            output.Write("<div>No filter specified (all).</div>");
                        }
                    }
                    else
                    {
                        output.Write("<div>Not connected.</div>");
                    }
    
                    output.Write("<hr>");
                }
            }
    
        }
    }
    
  5. Compile la solución. Ahora debería tener un ensamblado que contiene un elemento web de consumidor de filtro sencillo.

Pasos siguientes

Paso 2: Colocar el ensamblado en la bandeja o en la memoria caché de ensamblados global