PropertyFieldViewPicker control¶
This control generates a view picker field that can be used in the property pane of your SharePoint Framework web parts.
The control automatically retrieves the views for a given SharePoint list:

How to use this control in your solutions¶
- Check that you installed the
@pnp/spfx-property-controlsdependency. Check out The getting started page for more information about installing the dependency. - Import the following modules to your component:
import { PropertyFieldViewPicker, PropertyFieldViewPickerOrderBy } from '@pnp/spfx-property-controls/lib/PropertyFieldViewPicker';
- You'll probably want to use this control in combination with the PropertyFieldListPicker. Make sure to select the
multiSelectprop tofalse, as this control is designed to work with a single list. Store the list id in your web part properties, as follows:
export interface IPropertyControlsTestWebPartProps {
list: string; // Stores the list ID
}
- Create a new property for your web part, as indicated between the
BEGIN:andEND:comments below:
export interface IPropertyControlsTestWebPartProps {
list: string; // Stores the list ID
// BEGIN: Added
view: string; // Stores the view ID
// END: Added
}
- Add the custom property control to the
groupFieldsof the web part property pane configuration:
PropertyFieldViewPicker('view', {
label: 'Select a view',
listId: this.properties.list,
selectedView: this.properties.view,
orderBy: PropertyFieldViewPickerOrderBy.Title,
disabled: false,
onPropertyChange: this.onPropertyPaneFieldChanged.bind(this),
properties: this.properties,
context: this.context,
onGetErrorMessage: null,
deferredValidationTime: 0,
key: 'viewPickerFieldId'
})
Implementation¶
The PropertyFieldViewPicker control can be configured with the following properties:
| Property | Type | Required | Description |
|---|---|---|---|
| label | string | yes | Property field label displayed on top. |
| listId | string | yes | The ID of the list or library you wish to select a view from. |
| disabled | boolean | no | Specify if the control needs to be disabled. |
| context | BaseComponentContext | yes | Context of the current web part. |
| selectedView | string | no | Initial selected view of the control. |
| orderBy | PropertyFieldViewPickerOrderBy | no | Specify the property on which you want to order the retrieve set of views. |
| webAbsoluteUrl | string | no | Absolute Web Url of target site (user requires permissions) |
| onPropertyChange | function | yes | Defines a onPropertyChange function to raise when the date gets changed. |
| properties | any | yes | Parent web part properties, this object is use to update the property value. |
| key | string | yes | An unique key that indicates the identity of this control. |
| onGetErrorMessage | function | no | The method is used to get the validation error message and determine whether the input value is valid or not. See this documentation to learn how to use it. |
| deferredValidationTime | number | no | Control will start to validate after users stop typing for deferredValidationTime milliseconds. Default value is 200. |
| viewsToExclude | string[] | no | Defines views by which should be excluded from the view picker control. You can specify view titles or IDs |
| filter | string | no | Filter views from OData query. |
| onViewsRetrieved | (views: ISPView[]) => PromiseLike |
no | Callback that is called before the dropdown is populated. |
Enum PropertyFieldViewPickerOrderBy
| Name | Description |
|---|---|
| Id | Sort by view ID |
| Title | Sort by view title |