Help Centre  ›  Users & Roles  ›  Users List

Users List

Search and browse the user directory, sort and page results, and open per-user access management.

Tip: use keywords like account, business, subscription, users, roles.

Users List

Users List — Help & User Guide

Page: Users/UsersList.aspx

Overview

  • Purpose: displays the site-wide user directory, supports searching, paging and sorting, and links to per-user access management.
  • Files: Users/UsersList.aspx (markup) and UsersList.aspx.cs (code-behind).

Quick start (end user)

  • Search: type a name in the TxtSearch box and press Enter or click BtnSearch.
  • Page through results: use the grid pager (15 rows per page).
  • Sort: click sortable column headers (server-side sort).
  • Manage a user: click the Manage Access link in the row (ensure navigation is wired server-side).
  • Invite a user: click + Invite User to go to the Invite User page.

Primary UI elements

Header + Search

  • Page title: Users List
  • Search input: TxtSearch and search button BtnSearch
  • Invite link: + Invite User → InviteUser page

Grid

  • Grid control: GridUsers (paging, sorting, templates)
  • Visible columns:
  • USER_FIRSTNAME
  • USER_LASTNAME
  • Email (template field lblEmail)
  • Status (template field lblStatus)
  • Created (USER_DATECREATED formatted dd/MM/yyyy)
  • Row action:
  • lnkView (text “Manage Access”) — typically wired with NavigateUrl in code-behind

Empty state

  • LabelNoData shows “No users found.” when grid has no rows

Keyboard and client behavior

  • Enter key handler: page attaches Enter → click BtnSearch (note: duplicate window.onload blocks can override each other in some browsers).
  • Focus: TxtSearch is auto-focused on load.
  • Recommendation: combine duplicate onload handlers into a single initializer and guard focus/handler logic by checking element visibility.

Server-side handlers to review (code-behind)

  • BtnSearch_Click — perform search and rebind GridUsers
  • GridUsers_PageIndexChanging — handle paging and rebind
  • GridUsers_Sorting — apply sorting and rebind
  • GridUsers_RowCreated, GridUsers_RowDataBound — populate template fields (lblEmail, lblStatus) and per-row formatting
  • Ensure lnkView.NavigateUrl is set inside GridUsers_RowDataBound if needed

Troubleshooting checklist

Search not responding

  • Confirm BtnSearch_Click exists and the page posts back
  • Check browser console for JS errors preventing the button click

Grid empty

  • Confirm server returns data for query and grid is rebound after search, paging or sorting
  • Verify LabelNoData visibility logic

Sorting or paging misbehaves

  • Ensure the data source supports server-side sorting/paging or you re-query with correct parameters

Duplicate onload scripts cause missing focus or handlers

  • Remove duplicate window.onload definitions and use a single DOMContentLoaded or a single script block at page end

Security & validation notes

  • Authorize access to this page and all server handlers
  • Parameterize queries — never concatenate raw input into SQL
  • Validate search input server-side (length, allowed characters) to avoid injection and expensive queries
  • Avoid exposing sensitive internal IDs unless necessary

Accessibility & UX suggestions

  • Add aria-live="polite" to LabelNoData or an error panel to announce changes
  • Ensure lnkView has descriptive title / aria-label (e.g., “Manage access for {First Last}”)
  • Make focus visible for keyboard navigation and consider moving focus to the grid after a search

What to include when contacting support

  • search term used
  • approximate time
  • screenshot of any error message (if shown)
  • browser used and steps taken
← Back to Help Centre