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-controls
dependency. 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
multiSelect
prop 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
groupFields
of 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 |