Lesson 5 · Module 3: Charts, Gauges, Lists and Tables
List element: formatted rows, sorting and maximum features
Video coming soon
Learn it with your tutor on the live board
Key points from the video
Storm night, one screen
- Hundreds of open outage tickets after a storm
- Supervisors need the worst ones first
- A map shows where, a list shows what to do next
- Today: build that list properly
What you will learn
- Design formatted rows with field values
- Sort rows and set maximum features on purpose
- Flag urgent rows with Arcade advanced formatting
What the list element is
- One row per feature from a layer or view
- Rows are rich text you design
- Optional icon, sorting and filters
- Selecting a row can drive the map
How a list is built
- Data source, then filter, then sort
- Then cut to the maximum features
- Then each row is drawn from the template
Formatted rows
- Field values go in curly-brace tokens
- Bold the part people scan first
- Set date and number formats per field
**{field/request_type}** at {field/address}
Opened {field/created_date} - {field/status} Worked example: sort and cut
- Filter: status is Open
- Sort: days open, descending
- Maximum features: 3
layout: side
tables:
requests:
columns: [id, type, status, days_open]
rows: [[101, Pothole, Open, 12], [102, Streetlight, Closed, 30], [103, Water leak, Open, 3], [104, Graffiti, Open, 21], [105, Pothole, Open, 8], [106, Missed pickup, Closed, 2], [107, Water leak, Open, 15]]
query: |
SELECT id, type, days_open
FROM requests
WHERE status = 'Open'
ORDER BY days_open DESC
LIMIT 3
steps:
- at: "seven service requests"
show: tables
- at: "written as a query"
show: query
- at: "closed ones drop out"
show: where
- at: "longest open first"
show: order
- at: "only the top three"
show: limit
- at: "final list shows"
show: result Flag urgent rows with Arcade
var days = DateDiff(Now(),
$datapoint.created_date, 'days')
var bg = IIF(days > 7, '#F5B7B1', '')
return {
textColor: '',
backgroundColor: bg,
separatorColor: '',
selectionColor: '',
selectionTextColor: '',
attributes: { daysOpen: Round(days) }
} Rows that drive the map
- On selection: zoom, pan or flash the feature
- On selection: filter charts and indicators
- Great for "show me this outage"
Check what gets cut off
- Indicator beside the list: count of open requests
- Indicator says 5 open
- List shows 3 rows (maximum features)
- 5 open, 3 shown, 2 hidden
Common mistake: the silent cutoff
- No sort set, so rows come in storage order
- Max features hides most records, silently
- Viewers assume the list is complete
- Fix: sort on purpose, show the limit in the title, add a count indicator
Recap
- Row templates turn fields into readable sentences
- Filter, then sort, then max features decides who appears
- Arcade formatting flags urgent rows by color
Your exercise
- Use a service request or outage layer you can edit
- Filter to open records, sort by age, max 10
- Template: type, address, date in one row
- Arcade: color rows open over 7 days
Transcript
Storm night, one screen. Picture the night after a big windstorm. Your utility has three hundred open outage tickets, and the duty supervisor has one screen on the wall. The map shows red dots everywhere, which tells her where the trouble is. It doesn't tell her which crew to send first. What she really needs is a short, ordered list: the ten outages affecting the most customers, each on one clear line, with the oldest ones flagged. That's exactly what the list element in ArcGIS Dashboards is for. In this lesson you'll build one that people can act on, not just look at.
What you will learn. By the end of this lesson you'll be able to do three things. First, design a row template so each feature reads like a short, useful sentence instead of a raw attribute dump. Second, control which rows appear and in what order, using sorting and the maximum features setting, and understand what gets left out. Third, use a small Arcade expression to color rows that need attention, like service requests that have been open for more than a week. We'll work with service requests and outages throughout, and every example comes from real dashboard settings you can click through today.
What the list element is. The list element is one of the elements you can add in ArcGIS Dashboards, next to maps, charts, gauges and tables. It takes a data source, usually a hosted feature layer or a view, and draws one row per feature. Unlike a table, you don't get fixed columns. Instead, you write a small template in rich text, and the list fills it in for every feature. You can add an icon, choose the sort order, filter the features, and link the list to other elements, so clicking a row zooms the map to that water main break or traffic incident.
How a list is built. Let's slow down and look at the order of operations, because it explains most surprises. The list starts with every feature in the layer. Then your filter removes what you don't want, for example closed requests. Next, the remaining features are sorted by the fields you chose. Only after sorting does the maximum features setting cut the list down to the first however many rows. Finally, each surviving feature is poured into your row template. So the sort decides who survives the cut. Change the sort, and you change which features anyone ever sees.
Formatted rows. The row template is where the list earns its keep. In the list settings, the line item template is a rich text editor. You type normal words and insert field tokens, which look like the word field, a slash and the field name, inside curly braces. For each feature, the list swaps each token for that feature's value. So a row might read: Pothole at 12 Elm Street, and on the next line, Opened March 3rd, In progress. The stars around the request type mark the part you make bold in the editor, so eyes land on it first. And set date formats in the data options, so people see a readable date instead of a long timestamp.
Worked example: sort and cut. Here's a worked example with seven service requests. On the right you see the same list settings, written as a query: where is the filter, order by is the sort, and limit is maximum features. First the filter keeps open requests, so the closed ones drop out, including request one oh two, even though it's been waiting thirty days. Then we sort by days open, descending, which puts the longest open first. Finally, maximum features is three, so only the top three survive. The final list shows graffiti at twenty one days, a water leak at fifteen, and a pothole at twelve. That's the order a supervisor wants to work through.
Flag urgent rows with Arcade. Now for the part that makes a list genuinely useful at a glance: advanced formatting. Arcade is Esri's small expression language, a bit like a spreadsheet formula with variables. In the list, dollar datapoint is the current feature. This script works out how many days the request has been open. If it's more than seven, the row gets a pale red background, otherwise no color. The other properties are left empty, which keeps the default colors. It also returns an attribute called days open, which you can drop into your row template with an expression token instead of a field token. Now every overdue request stands out without anyone reading a single date.
Rows that drive the map. A list also works as a remote control for the rest of the dashboard. In the list's actions tab, you set what happens when someone selects a row. The common choices are to zoom or pan the map to that feature, flash it, and filter other elements. Picture the storm dashboard again. The supervisor clicks the top outage in the list, the map zooms to that feeder line, and an indicator next to it shows how many customers are affected. Can you see why this beats hunting for a dot on a crowded map at two in the morning?
Check what gets cut off. Before you publish, check what your settings hide, right in the dashboard. Add an indicator next to the list, give it the same data source and the same filter, and set it to count features. In our example the indicator says five open requests, while the list shows three rows. Five open and three shown means two requests are hidden by the maximum features setting. On a real layer the gap can be much bigger: three hundred open requests, and with maximum features set to ten, two hundred ninety hidden. Knowing that gap tells you whether the list needs a count beside it.
Common mistake: the silent cutoff. The most common mistake is trusting a list that quietly hides most of its data. If you never set a sort, rows arrive in whatever order the layer stores them, often oldest edits first. Then the maximum features setting cuts everything after the first few rows, and nothing on screen says so. A manager sees ten tidy water main breaks and assumes that's all of them, when there are eighty. The fix is simple. Always choose the sort deliberately, put the number shown in the list title, and add an indicator nearby with the total count.
Recap. Let's recap. First, the row template is rich text with field tokens, so each feature reads like a short sentence someone can act on. Second, the list filters, then sorts, then cuts to the maximum features, so your sort decides which features anyone sees, and a count nearby keeps viewers honest about what's hidden. Third, a few lines of Arcade in advanced formatting can color overdue or critical rows, so the most urgent work jumps out from across the room. Those three habits turn a list from decoration into a work queue.
Your exercise. Here's your task before the next lesson. Open a dashboard with a service request or outage layer, either your own or a sample layer copied from Living Atlas into your content. Add a list element, filter it to open records, sort by created date so the oldest come first, and set maximum features to ten. Write a one-line template with the request type in bold, the address and the date. Then add the Arcade expression to color anything open longer than seven days. Finally, put an indicator beside it showing the total number of open records.
Explore the animation
The animations from the video, exact and live: play them, pause, drag the slider or jump to a step at your own pace.
Loading the animation...
Lesson summary
- Video watched
- Row templates turn fields into readable sentences
- Filter, then sort, then max features decides who appears
- Arcade formatting flags urgent rows by color