//Provider WebPart
using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace EventSearchWebPart
{
[Guid ("0736764b-dc5c-404a-9c7b-188659cf2719")]
społeczeństwo klasowy EventSearchWebPart: System.Web.UI.WebControls.WebParts.WebPart, ITransformableFilterValues
{
jawny EventSearchWebPart ()
{
}
[ConnectionProvider ("Dział LUB Lokacja", "UniqueIDForRegionConnection", AllowsMultipleConnections = true)]
jawny ITransformableFilterValues SetConnection ()
{
wracać to;
}
intymny RadioButtonList _regions;
ochraniać override pustka CreateChildControls ()
{
base.CreateChildControls ();
_regions = nowy RadioButtonList ();
_regions. Items.Add (nowy ListItem ("Dział"));
_regions. Items.Add (nowy ListItem ("Lokacja"));
_regions. Items.Add (nowy ListItem ("Wszystkie Wydarzenie"));
_regions.AutoPostBack = true;
_regions. Controls.Add (_regions);
}
#region ITransformableFilterValues Członek
jawny bool AllowAllValue
{
dostawać {powrót prawdziwy; }
}
jawny bool AllowEmptyValue
{
dostawać {powrotny fałszywy; }
}
jawny bool AllowMultipleValues
{
dostawać {powrotny fałszywy; }
}
społeczeństwo smyczkowy ParameterName
{
dostawać {powrót "Dział LUB Lokacja"; }
}
społeczeństwo System.Collections.ObjectModel.ReadOnlyCollection ParameterValues
{
dostawać {
EnsureChildControls ();
List region = nowy List ();
dla (int i = (0); i < _regions. Items.Count; i++)
{
jeżeli (_regions. Rzecz [i]. Wybrany)
{
region. Dodawać (_regions. Rzecz [i]. Wartość);
}
}
ReadOnlyCollection rezultat = nowy ReadOnlyCollection (region);
powrotny rezultat;
}
}
#endregion
}
}
//Consumer WebPart
using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
using System.Collections.Generic;
namespace EventSearchWebPart
{
[Guid ("558abb6e-c442-4cda-aaeb-991d8bdc6884")]
społeczeństwo klasowy EventSearchConsumerWebPart: System.Web.UI.WebControls.WebParts.WebPart
{
intymny List _filterProviders;
intymny List FilterProviders
{
dostawać
{
wracać _filterProviders;
}
}
[ConnectionConsumer ("filtr", "UniqueIDForConsumer", AllowsMultipleConnections = true)]
jawny kawitacyjny SetFilter (IFilterValues filterValues)
{
jeżeli (filterValues! = null)
{
EnsureChildControls ();
List parametr = nowy List ();
parametr. Dodawać (nowy ConsumerParameter ("Dział LUB Lokacja", ConsumerParameterCapabilities.SupportsMultipleValues | ConsumerParameterCapabilities.SupportsAllValue));
parametr. Dodawać (nowy ConsumerParameter ("Status", ConsumerParameterCapabilities.SupportsMultipleValues | ConsumerParameterCapabilities.SupportsAllValue));
filterValues.SetConsumerParameters (nowy System.Collections.ObjectModel.ReadOnlyCollection (parametr));
this.FilterProviders.Add (filterValues);
}
}
jawny EventSearchConsumerWebPart ()
{
_filterProviders = nowy List ();
}
ochraniać override pustka OnPreRender (EventArgs e)
{
smyczkowy filname = "";
smyczkowy filval = "";
foreach (IFilterValues filtr w FilterProviders)
{
//writer.WriteLine (sznurek. Format ("Parametr: {(0)} ", filter.ParameterName));
jeżeli (filter.ParameterValues! = null)
{
foreach (smyczkowy wartość w filter.ParameterValues)
jeżeli (! string.IsNullOrEmpty (wartość))
{
//writer.WriteLine (sznurek. Format ("wartość: {(0)} ", wartość));
jeżeli (filter.ParameterName == "Dział LUB Lokacja")
filname = wartość;
inny
{
jeżeli (filter.ParameterName == "Status")
filval = wartość;
}
}
}
}
SPWeb sieć = SPControl.GetContextWeb (to. Kontekst);
web.AllowUnsafeUpdates = true;
SPView widok = sieć. Lista ["Events01"]. Widok ["Wszystkie Dokument"];
smyczkowy zapytanie = "";
jeżeli (filname == "Wszystkie Wydarzenie")
zapytanie = "";
inny
jeżeli (filname! = "" && filval! = "")
{
zapytanie = "" + filval + "";
}
inny
zapytanie = "";
widok. Zapytanie = zapytanie;
widok. Aktualizacja ();
base.OnPreRender (e);
}
}
}
|