SetFilterEventArgs.FilterExpression - Propriété
Remarque : cette API est désormais obsolète.
Obtient ou définit l'expression de filtre d'une liste fournie par un WebPartqui implémente l'interface IFilterProvider lorsque l' SetFilterEvent se produit.
Espace de noms : Microsoft.SharePoint.WebPartPages.Communication
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
<ObsoleteAttribute("Use System.Web.UI.WebControls.WebParts.IWebPartParameters instead")> _
Public Property FilterExpression As String
Get
Set
'Utilisation
Dim instance As SetFilterEventArgs
Dim value As String
value = instance.FilterExpression
instance.FilterExpression = value
[ObsoleteAttribute("Use System.Web.UI.WebControls.WebParts.IWebPartParameters instead")]
public string FilterExpression { get; set; }
Valeur de propriété
Type : System.String
L'expression de filtre fourni.
Remarques
La propriété FilterExpression est composée d'une série de nom de champ et les paires de valeur de champ regroupés par un numéro unique, par exemple FilterField1 = Nom_champ1 & FilterValue1 = FieldValue1 & FilterField2 = Nom_champ2 & FilterValue2 = FieldValue2.
Il peut également être ajouté par une expression de tri, par exemple FilterField1 = Nom_champ1 & FilterValue1 = FieldValue1 & SortField = FieldName & SortDir = SortDirection. Si SortField n'est fournie, aucun tri ne doit être appliqué à une liste. Si SortField est fourni, mais n'est pas SortDirection, la liste doit être triée dans le sens croissant.
Pour les connexions de la page, l'expression tout entière sera URL codée, par exemple, espaces sont remplacés par % 20. Sinon, aucun codage URL ne sera utilisé.
Notes
La valeur retournée par la propriété FilterExpression ne doit pas nécessairement être utilisé pour filtrer une liste. Le composant WebPart utilisant cette valeur utilise les paires nom/valeur à d'autres fins.
Exemples
L'exemple de code suivant montre une méthode PartCommunicationsMain qui utilise la propriété FilterExpression pour définir l'expression de filtre fourni. Cet exemple de code fait partie d'un exemple plus développé fourni pour l'interface IFilterProvider .
' Step #7: Override the PartCommunicationMain() method.
' The PartCommunicationMain method is called by the Web Part
' infrastructure on the client during the ASP.NET PreRender
' event to allow the part to pass its primary data to the other
' connected parts. It is important to always fire either the SetFilter,
' NoFilter, or ClearFilter event. Some parts may not behave properly if
' they are left waiting for this information.
' SetFilter should be fired to send the filter expression.
' NoFilter should be fired to indicate that there is no change in the
' filter expression. ClearFilter should be fired to indicate that the
' filter should be removed.
Public Overrides Sub PartCommunicationMain()
' Ensure that all of the Web Part's controls are created.
EnsureChildControls()
' Check if connected.
If _connected Then
' Check which button was clicked.
If _setFilterClicked = True Then
' Create the SetFilterEventArgs object for the SetFilter
' event.
Dim setFilterEventArgs As New SetFilterEventArgs()
' Create the filter expression.
Dim eIndex As Integer = 1
Dim filterExpression As String = String.Empty
Dim index As Integer
For index = 0 To _fieldList.Length - 1
' This filter expression syntax should be used with
' SharePoint lists and other Microsoft Web Parts that
' support the IFilterConsumer interface.
If _filterInputs(index).Text <> String.Empty Then
filterExpression += FieldLabel + eIndex.ToString() + "=" + _fieldList(index) + "&"
filterExpression += ValueLabel + eIndex.ToString() + "=" + _filterInputs(index).Text + "&"
eIndex += 1
End If
Next index
' Trim Off Trailing '&'
If filterExpression.Length <> 0 Then
filterExpression = filterExpression.Substring(0, filterExpression.Length - 1)
End If
' Set the FilterExpression property on the
' SetFilterEventArgs object.
setFilterEventArgs.FilterExpression = filterExpression
' Set the _filterExpression variable for display in the
' user interface.
_filterExpression = filterExpression
' Fire the event.
RaiseEvent SetFilter(Me, setFilterEventArgs)
_setFilterClicked = False
End If
ElseIf _clearFilterClicked = True Then
RaiseEvent ClearFilter(Me, New EventArgs())
_clearFilterClicked = False
' Clear out values in input text boxes.
If Not (_filterInputs Is Nothing) Then
Dim index As Integer
For index = 0 To _filterInputs.Length - 1
_filterInputs(index).Text = String.Empty
Next index
End If
ElseIf _noFilterClicked = True Then
RaiseEvent NoFilter(Me, New EventArgs())
_noFilterClicked = False
Else
RaiseEvent NoFilter(Me, New EventArgs())
End If
End Sub
// Step #7: Override the PartCommunicationMain() method.
// The PartCommunicationMain method is called by the Web Part
// infrastructure on the client during the ASP.NET PreRender
// event to allow the part to pass its primary data to the other
// connected parts.
// It is important to always fire either the SetFilter, NoFilter, or
// ClearFilter event. Some parts may not behave properly if they are
// left waiting for this information.
// SetFilter should be fired to send the filter expression.
// NoFilter should be fired to indicate that there is no change in the filter expression.
// ClearFilter should be fired to indicate that the filter should be removed.
public override void PartCommunicationMain()
{
// Ensure that all of the Web Part's controls are created.
EnsureChildControls();
// Check if connected.
if(_connected)
{
// Check which button was clicked.
if(_setFilterClicked == true)
{
// If there is a listener, fire the SetFilter event.
if (SetFilter != null)
{
// Create the SetFilterEventArgs object for the SetFilter event.
SetFilterEventArgs setFilterEventArgs = new SetFilterEventArgs();
// Create the filter expression.
int eIndex = 1;
string filterExpression = string.Empty;
for (int index = 0; index < _fieldList.Length; index++)
{
// This filter expression syntax should be used
// with SharePoint lists
// and other Microsoft Web Parts that support the
// IFilterConsumer interface.
if (_filterInputs[index].Text != string.Empty)
{
filterExpression += FieldLabel + eIndex.ToString() + "=" + _fieldList[index] + "&";
filterExpression += ValueLabel + eIndex.ToString() + "=" + _filterInputs[index].Text + "&";
eIndex++;
}
}
// Trim Off Trailing '&'
if (filterExpression.Length != 0)
filterExpression = filterExpression.Substring(0,filterExpression.Length - 1);
// Set the FilterExpression property on the
// SetFilterEventArgs object.
setFilterEventArgs.FilterExpression = filterExpression;
// Set the _filterExpression variable for display in
// the user interface.
_filterExpression = filterExpression;
// Fire the event.
SetFilter(this, setFilterEventArgs);
_setFilterClicked = false;
}
}
else if(_clearFilterClicked == true)
{
// If there is a listener, fire the ClearFilter event.
if (ClearFilter != null)
{
ClearFilter(this, new EventArgs());
_clearFilterClicked = false;
// Clear out values in input text boxes.
if (_filterInputs != null)
{
for (int index = 0; index < _filterInputs.Length; index++)
_filterInputs[index].Text = string.Empty;
}
}
}
else if(_noFilterClicked == true)
{
// If there is a listener, fire the NoFilter event.
if (NoFilter != null)
{
NoFilter(this, new EventArgs());
_noFilterClicked = false;
}
}
else
{
// If there is a listener, fire the NoFilter event.
if (NoFilter != null)
{
NoFilter(this, new EventArgs());
}
}
}
}
Voir aussi
Référence
Microsoft.SharePoint.WebPartPages.Communication - Espace de noms