步骤 1:开发 ASP.NET Web 部件程序集

若要创建一个简单筛选器使用者 Web 部件,可以先开发 ASP.NET Web 部件程序集。一般通过使用派生自 System.Web.UI.WebControls.WebParts.WebPart 基类的类创建类库来创建程序集。

有关开发 ASP.NET 程序集的详细信息,请参阅以下 ASP.NET 2.0 文档:

  • ASP.NET Web 部件入门

  • ASP.NET Web 部件文档

  • ASP.NET 2.0 Web 部件连接

先决条件

本主题假定您正在使用 Microsoft Visual Studio 2005。

开发 ASP.NET Web 部件程序集

  1. 启动 Visual Studio 2005。

  2. 创建一个新的 C# 类库项目。

  3. 将引用添加到 System.Web、Microsoft.Office.Server、Microsoft.SharePoint 和 Microsoft.SharePoint.Portal。

  4. 在 .cs 文件中,复制并粘贴以下代码:

    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. 编译该解决方法。现在就得到了一个包含简单筛选器使用者 Web 部件的程序集。

Next Steps

步骤 2:将您的程序集放置在 Bin 或全局程序集缓存中