Skip to content

List Views — User Guide

Audience: Site administrators, list owners, and end users who need to create, configure, and manage list views in Cesivi.

See also: Columns guide · Site Collections guide · List Items guide


Overview

A view defines how the items in a list or library are displayed: which columns appear, the sort order, filters, grouping, row limit, and the view type (Standard, Calendar, Gantt, Datasheet). Every list has at least one view — the default view — that opens when you navigate to AllItems.aspx without a ?View= parameter.

Cesivi supports all four SharePoint classic view types:

View type Key ID Use case
Standard (HTML) HTML General-purpose grid view
Calendar CALENDAR Events / date-based display
Gantt GANTT Task scheduling / timelines
Datasheet GRID Inline quick-edit spreadsheet

URL pattern What you see
/Lists/{ListName}/AllItems.aspx Default view of the list
/Lists/{ListName}/{ViewName}.aspx Specific named view
/_layouts/15/ViewType.aspx?List={ListName} View-type chooser (Standard / Calendar / Gantt / Datasheet)
/_layouts/15/viewnew.aspx?List={ListName} Create a new Standard view directly
/_layouts/15/viewedit.aspx?List={ListName}&ViewName={Name} Edit an existing view

Creating a Standard View

  1. Open the list (e.g. /Lists/Tasks/AllItems.aspx).
  2. In the toolbar, click Create ViewStandard View (or go directly to ViewType.aspx).
  3. Fill in the view form:
  4. View Name — unique name within this list.
  5. Columns — check which columns should appear and drag them to reorder.
  6. Sort — up to two levels (Primary field + direction).
  7. Filter — one or two conditions joined by AND/OR.
  8. Group By — up to one grouping field.
  9. Row Limit — how many items per page (default: 30). Check Limit the total number of items returned for a hard cap instead of paging.
  10. Set as default view — check to promote this view to be the landing view.
  11. Click OK to save.

Create Standard View form


Creating a Calendar View

Calendar views require a list that has at least one Date and Time column (e.g. the Events list template has EventDate and EndDate).

  1. Go to /_layouts/15/ViewType.aspx?List={ListName} and select Calendar.
  2. In the view form that opens:
  3. Choose the Start Date field from the Calendar Start Field selector.
  4. Optionally choose the End Date field.
  5. Choose the Title field.
  6. Click OK to save.

The resulting view renders a monthly/weekly/daily calendar widget.

Create Calendar View


Creating a Gantt View

Gantt views are suitable for task/project lists (Tasks template 107, or any list with DateTime columns).

  1. Go to /_layouts/15/ViewType.aspx?List={ListName} and select Gantt.
  2. In the view form:
  3. Choose the Start Date field (GanttStartField).
  4. Choose the End/Due Date field (GanttEndField).
  5. Choose the Title field.
  6. Click OK to save.

Create Gantt View


Creating a Datasheet (Quick Edit) View

Datasheet views display items as an editable spreadsheet grid where you can edit cells inline.

  1. Go to /_layouts/15/ViewType.aspx?List={ListName} and select Datasheet.
  2. Choose columns and row limit, then click OK.

The resulting AllItems.aspx view for this view type sets spPageContext.isDatasheetView = true and activates the quick-edit toolbar.


Editing a View

  1. Open the view you want to edit.
  2. In the toolbar, click Modify this View or navigate directly to:
    /_layouts/15/viewedit.aspx?List={ListName}&ViewName={ViewName}
    
  3. Change any settings (columns, sort, filter, group-by, row limit, view type).
  4. Click OK to save.

Edit View form — sort and filter section

Tip: When you change the View Type radio button on the edit form, type-specific settings sections (calendar, gantt, datasheet) appear and hide automatically.


Setting the Default View

Only one view can be the default at a time. When you navigate to AllItems.aspx without a ?View= query parameter, the default view opens.

To change the default:

  1. Open viewedit.aspx for the view you want to promote.
  2. Check the Make this the default view checkbox.
  3. Click OK.

The previous default view is automatically demoted.

Restriction: The current default view cannot be deleted. The Delete button is hidden on its viewedit.aspx page. Demote it to a non-default view first.

Set as default view checkbox


Deleting a View

  1. Open viewedit.aspx for the view you want to delete.
  2. Click the Delete button (only visible for non-default views).
  3. Confirm the deletion.

The view is permanently removed. The list's default view is unaffected.

Note: You cannot delete the last remaining view on a list (the default must always exist).


Personal Views (My Views)

A Personal View is visible only to the user who created it. It does not appear in other users' view selectors.

Creating a personal view

  1. On viewnew.aspx, check the Personal View checkbox before saving.
  2. Once personal is selected, the Make Default View checkbox hides automatically (personal views cannot be the list's shared default).

Identifying a personal view in viewedit

When you open a personal view in viewedit.aspx, a Personal View badge appears at the top of the form. The Make Default View checkbox is hidden for personal views.

Personal view badge in viewedit

REST API visibility

Personal views appear in the REST _api/web/lists/getbytitle('X')/views collection with PersonalView: true. Other users' REST calls return only shared views for that user's context.


Sort, Filter, Group By

All three settings round-trip through viewedit.aspx:

Setting What it does CAML element
Sort By (primary + secondary) Orders rows by one or two fields <OrderBy>
Filter (1–2 conditions + AND/OR) Restricts which items appear <Where>
Group By Collapses rows into collapsible groups <GroupBy>

Filter operators supported:

Operator label CAML element
Equal to <Eq>
Not equal to <Neq>
Greater than <Gt>
Less than <Lt>
Contains <Contains>
Begins with <BeginsWith>
Is null <IsNull>
Is not null <IsNotNull>

View Scope (Document Libraries)

For document libraries, the Scope property controls whether folders are shown:

Scope value Behaviour
0 (Default) Show files and folders at the current folder level
1 (FilesOnly) Show only files (no folder rows)
8 (RecursiveAll) Show all files from all sub-folders flattened

Scope is set via the REST API (Scope property on SP.View) or programmatically.


Sub-Web Views

Views in sub-web lists work exactly like root-web list views. The SPWebPath context header routes operations to the correct web.

URL pattern Notes
/subweb/Lists/{List}/AllItems.aspx Default view in a depth-1 sub-web
/sub/grand/Lists/{List}/AllItems.aspx Default view in a depth-2 sub-web

Views created in a sub-web list are scoped to that web — they do not affect the root web's lists of the same name.


Cross-Client API Compatibility

All view operations are available via all four client surfaces:

Client Create Update Delete Get
REST POST /_api/web/lists/getbytitle('X')/views MERGE .../views/getbytitle('X') DELETE .../views/getbytitle('X') GET .../views
SOAP Views.asmx AddView UpdateView DeleteView GetViewCollection / GetView
CSOM ViewCollection.Add(ViewCreationInformation) view.Update() view.DeleteObject() list.Views
PnP PowerShell Add-PnPView Set-PnPView Remove-PnPView Get-PnPView

REST Quick Reference

# Get all views for a list
GET /_api/web/lists/getbytitle('MyList')/views
Accept: application/json

# Get a specific view by title
GET /_api/web/lists/getbytitle('MyList')/views/getbytitle('All Items')

# Create a view
POST /_api/web/lists/getbytitle('MyList')/views
Content-Type: application/json
{
  "__metadata": { "type": "SP.View" },
  "Title": "My View",
  "ViewFields": { "results": ["Title", "Created"] },
  "RowLimit": 30,
  "DefaultView": false,
  "PersonalView": false,
  "ViewType": "HTML"
}

# Update a view
MERGE /_api/web/lists/getbytitle('MyList')/views/getbytitle('My View')
IF-MATCH: *
Content-Type: application/json
{ "__metadata": { "type": "SP.View" }, "RowLimit": 50 }

# Delete a view
DELETE /_api/web/lists/getbytitle('MyList')/views/getbytitle('My View')
IF-MATCH: *

PnP PowerShell Quick Reference

# Connect
Connect-PnPOnline -Url "https://cesivi.local/Default/RootSite" -Credentials $cred

# List all views
Get-PnPView -List "MyList"

# Get a specific view
Get-PnPView -List "MyList" -Identity "All Items"

# Create a view
Add-PnPView -List "MyList" -Title "My View" -Fields Title,Created -RowLimit 30

# Update a view's row limit
Set-PnPView -List "MyList" -Identity "My View" -Values @{ RowLimit = 50 }

# Delete a view
Remove-PnPView -List "MyList" -Identity "My View" -Force

CSOM Quick Reference

using var ctx = new ClientContext("https://cesivi.local/Default/RootSite");
ctx.Credentials = new NetworkCredential("admin", "admin");

var list = ctx.Web.Lists.GetByTitle("MyList");
ctx.Load(list);
ctx.ExecuteQuery();

// Create
var view = list.Views.Add(new ViewCreationInformation
{
    Title = "My View",
    ViewTypeKind = ViewType.Html,
    RowLimit = 30,
    SetAsDefaultView = false,
    ViewFields = new[] { "Title", "Created" }
});
ctx.ExecuteQuery();

// Update
view.RowLimit = 50;
view.Update();
ctx.ExecuteQuery();

// Delete
view.DeleteObject();
ctx.ExecuteQuery();

WCAG 2.1 AA Conformance — List Views (PLAN-1642)

Surface #5 (List Views) was audited and remediated as part of the v1.4 Group A1 accessibility campaign.

Result: 0 critical + 0 serious axe-core violations across 22 registered routes. KnownAxeAcceptances = [] — no color-contrast or region waivers.

Automated Gate Results

Gate Tests Result
axe-core WCAG 2.1 AA (22 routes) 10 test methods ✅ 0 critical, 0 serious
Keyboard navigation 18 tests ✅ 18/18 GREEN
Screen-reader semantics 16 tests ✅ 16/16 GREEN
Narrator proxy report Filed

Remediations Applied

Area Fix Rule
AllItems sortable column headers Removed spurious role="button" from thContent div in ml-grid.js (chevron inside already has role="button" — nested interactive violation) nested-interactive
Calendar grid structure Added role="row" wrappers with display:contents so CSS Grid layout is unaffected while ARIA tree is correct (role="grid"role="row"role="columnheader"/role="gridcell") aria-required-children, aria-required-parent
Calendar "New Event" button Added .sp-cal-new-event-btn class + CSS override #0065b3 (5.05:1 contrast ratio) in _a11y.css color-contrast
Viewedit filter selects Added aria-label to all 5 filter <select> elements (FilterField1, FilterOp1, FilterConnector, FilterField2, FilterOp2) select-name
Viewnew filter selects Same aria-label additions select-name
Column internal-name spans Changed color:#888 (4.47:1) → color:#595959 in Viewedit and Viewnew color-contrast

WCAG 2.1 AA Criterion Coverage

Criterion Level Status
1.1.1 Non-text Content A
1.3.1 Info and Relationships A ✅ Calendar role="grid" structure correct
1.3.2 Meaningful Sequence A
1.4.3 Contrast (Minimum) AA ✅ All fixed to ≥4.5:1
2.1.1 Keyboard A ✅ 18-test keyboard gate
2.4.1 Bypass Blocks A ✅ Skip-nav on all 22 routes
2.4.3 Focus Order A
2.4.7 Focus Visible AA
3.3.2 Labels or Instructions A ✅ All filter selects labeled
4.1.2 Name, Role, Value A ✅ No nested-interactive; all selects have accessible names

Residual Moderate/Minor Violations

Moderate and minor violations (if any were found) are non-blocking at the gate threshold. No waivers were granted for critical or serious violations.