若要创建一个简单筛选器使用者 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 部件程序集
启动 Visual Studio 2005。
创建一个新的 C# 类库项目。
将引用添加到 System.Web、Microsoft.Office.Server、Microsoft.SharePoint 和 Microsoft.SharePoint.Portal。
在 .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> <i>"(empty)"/null</i></div>"); } else if (v.Length == 0) { output.Write("<div> <i>empty string</i></div>"); } else { output.Write("<div> " +v + "</div>"); } } } else { output.Write("<div>No filter specified (all).</div>"); } } else { output.Write("<div>Not connected.</div>"); } output.Write("<hr>"); } } } }
编译该解决方法。现在就得到了一个包含简单筛选器使用者 Web 部件的程序集。