//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“)]
allgemeine Kategorie EventSearchWebPart: System.Web.UI.WebControls.WebParts.WebPart, ITransformableFilterValues
{
allgemeines EventSearchWebPart ()
{
}
[ConnectionProvider („Abteilung ODER Position“, „UniqueIDForRegionConnection“, AllowsMultipleConnections = richten)] aus
allgemeines ITransformableFilterValues SetConnection ()
{
dieses zurückbringen;
}
private RadioButtonList _regions;
geschützte Übersteuerungslücke CreateChildControls ()
{
base.CreateChildControls ();
_regions = neues RadioButtonList ();
_regions. Items.Add (neues ListItem („Abteilung“));
_regions. Items.Add (neues ListItem („Position“));
_regions. Items.Add (neues ListItem („alle Ereignisse“));
_regions.AutoPostBack = richten aus;
dieses. Controls.Add (_regions);
}
#region ITransformableFilterValues Mitglieder
allgemeines bool AllowAllValue
{
erhalten {Rückhol ausrichten; }
}
allgemeines bool AllowEmptyValue
{
erhalten {Rückholfalsches; }
}
allgemeines bool AllowMultipleValues
{
erhalten {Rückholfalsches; }
}
allgemeine Schnur ParameterName
{
erhalten {Rückkehr „Abteilung ODER Position“; }
}
Öffentlichkeit System.Collections.ObjectModel.ReadOnlyCollection ParameterValues
{
erhalten {
EnsureChildControls ();
List Regionen = neues List ();
für (int I = 0; I < _regions. Items.Count; i++)
{
wenn (_regions. Einzelteile [i]. Vorgewählt)
{
Regionen. Hinzufügen (_regions. Einzelteile [i]. Wert);
}
}
ReadOnlyCollection Resultat = neues ReadOnlyCollection (Regionen);
Rückholresultat;
}
}
#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“)]
allgemeine Kategorie EventSearchConsumerWebPart: System.Web.UI.WebControls.WebParts.WebPart
{
private List _filterProviders;
privates List FilterProviders
{
erhalten
{
_filterProviders zurückbringen;
}
}
[ConnectionConsumer („Filter“, „UniqueIDForConsumer“, AllowsMultipleConnections = richten)] aus
Öffentlichkeit leeres SetFilter (IFilterValues filterValues)
{
wenn (filterValues! = Null)
{
EnsureChildControls ();
List Parameter = neues List ();
Parameter. Hinzufügen (neues ConsumerParameter („Abteilung ODER Position“, ConsumerParameterCapabilities.SupportsMultipleValues | ConsumerParameterCapabilities.SupportsAllValue));
Parameter. Hinzufügen (neues ConsumerParameter („Status“, ConsumerParameterCapabilities.SupportsMultipleValues | ConsumerParameterCapabilities.SupportsAllValue));
filterValues.SetConsumerParameters (neues System.Collections.ObjectModel.ReadOnlyCollection (Parameter));
this.FilterProviders.Add (filterValues);
}
}
allgemeines EventSearchConsumerWebPart ()
{
_filterProviders = neues List ();
}
geschützte Übersteuerungslücke OnPreRender (EventArgs e)
{
Schnur filname = "";
Schnur filval = "";
foreach (IFilterValues Filter in FilterProviders)
{
//writer.WriteLine (Schnur. Format („Parameter: {0} “, filter.ParameterName));
wenn (filter.ParameterValues! = Null)
{
foreach (Schnurwert in filter.ParameterValues)
wenn (! string.IsNullOrEmpty (Wert))
{
//writer.WriteLine (Schnur. Format („Wert: {0} “, Wert));
wenn (filter.ParameterName == „Abteilung ODER Position“)
filname = Wert;
sonst
{
wenn (filter.ParameterName == „Status“)
filval = Wert;
}
}
}
}
SPWeb Netz = SPControl.GetContextWeb (dieses. Zusammenhang);
web.AllowUnsafeUpdates = richten aus;
SPView Ansicht = Netz. Listen [„Events01“]. Ansichten [„alle Dokumente“];
Schnur Frage = "";
wenn (filname == „alle Ereignisse“)
Frage = „“ + filval + „“;
}
sonst
Frage = „
Wort-Presse, die Frage bewirtet
|