Поделиться через


Класс SetFilterEventArgs

Примечание. Этот API устарел.

Представляет выражение фильтра для списка SetFilterEvent интерфейса IFilterProvider .

Иерархия наследования

System.Object
  System.EventArgs
    Microsoft.SharePoint.WebPartPages.Communication.SetFilterEventArgs

Пространство имен:  Microsoft.SharePoint.WebPartPages.Communication
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
<ObsoleteAttribute("Use System.Web.UI.WebControls.WebParts.IWebPartParameters instead")> _
Public Class SetFilterEventArgs _
    Inherits EventArgs
'Применение
Dim instance As SetFilterEventArgs
[ObsoleteAttribute("Use System.Web.UI.WebControls.WebParts.IWebPartParameters instead")]
public class SetFilterEventArgs : EventArgs

Примеры

В следующем примере кода показан метод переопределенный PartCommunicationMain , который создает экземпляр SetFilterEventArgsдля отправки при возникновении SetFilter . Данный пример кода является частью большего примера, приведенного для интерфейса 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

                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 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());
            }
        }
    }
}

Потокобезопасность

Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.

См. также

Справочные материалы

Элементы SetFilterEventArgs

Пространство имен Microsoft.SharePoint.WebPartPages.Communication