In a previous JS Link / CSR post we covered how to handle what is displayed in a web part when there are no items to show. SharePoint’s default message is an ambiguous:
“There are no items to show in this view of the [listname] list”
Not an awesome user experience. Something a little more contextually relevant might be more helpful to users – either in a simple list view, or in a more complicated solution.
A PowerApps Gallery control isn’t any better – merely showing a blank record. The Data Table control, on the other hand, has a handy ‘NoDataText’ property that can be configured to display a message when the control is empty.
So, what do we do when using Gallery controls – until a ‘NoDataText’ property is added and/or the Data Table control allows for more configuration options? As is the answer with many things in PowerApps: We use a formula.
Using an appropriate text field control within a Gallery control, we can replace the Text property with a formula like the following:
If(CountRows([_List Name_])=0,”[_Put your message here_]”, ThisItem.Title)
For a SharePoint list named: DefaultList you get the following:
If(CountRows(DefaultList)=0,”Nothing to see here”, ThisItem.Title)
The ‘CountRows’ function as you might guess returns the number of rows in the list.
The ‘If’ function tells the control to set the displayed value of the control to “Nothing to see here” if the condition (there are 0 rows) evaluates to ‘true’. If not, the value of the control is ThisItem.Title – the normal field value we would expect in the control. The text is only displayed when there are no items in the list.