Managing Entity Forms and Lists

Loading

Managing Entity Forms and Lists in Power Pages – Complete Guide (1000+ Words)

In Power Pages, Entity Forms and Entity Lists play a central role in enabling user interaction with Dataverse data (formerly known as Common Data Service). Whether you want to build a form for user registration, feedback submission, data viewing, or an interactive list of records, these components allow you to create powerful, data-driven experiences directly within your portal.

This in-depth guide will walk you through the following:

  • What Entity Forms and Lists are
  • How to create and manage them
  • Security considerations
  • Customizations using JavaScript, CSS, and Liquid
  • Real-world use cases and best practices

1. What Are Entity Forms and Entity Lists?

Entity Forms:

An Entity Form renders a Dataverse form on a Power Pages site. It allows users to:

  • Create new records (Create Mode)
  • View existing records (Read-Only Mode)
  • Update existing records (Edit Mode)

It is based on the form defined in Dataverse (via the Power Apps maker portal), and can include validations, lookups, and business rules.

Entity Lists:

An Entity List displays a list of records from a Dataverse table in a grid or table format. It supports:

  • Sorting, filtering, and searching
  • Inline editing or redirects to Entity Forms
  • Actions such as Create, Edit, Delete
  • Export to Excel or Print

2. Where Are Entity Forms and Lists Managed?

You manage them using the Power Pages Design Studio or the Portals Management App (more advanced).

Design Studio (for simplified configuration):

  • Navigate to your Power Pages site
  • Open the Pages section
  • Click a web page > Select Form or List component

Portals Management App (for advanced setup):


3. Creating an Entity Form – Step-by-Step

Step 1: Create the Form in Dataverse

  1. Open Tables in the Power Apps Maker Portal
  2. Choose a table (e.g., Feedback)
  3. Create a Main Form with the fields you want to display

Step 2: Create the Entity Form

  1. Open Portals Management
  2. Go to Entity Forms > + New
  3. Fill the following:
FieldDescription
NameName of the form (e.g., “Feedback Form”)
Entity NameSelect the table (e.g., Feedback)
Form NameChoose the form created in Dataverse
ModeCreate, Edit, or Read Only
Web PageLink this form to a Power Pages page

Step 3: Add Metadata (Optional but Powerful)

You can use Form Metadata to:

  • Add instructions or labels
  • Include custom JavaScript
  • Redirect after submission
  • Show/hide specific fields conditionally

4. Creating an Entity List – Step-by-Step

Step 1: Enable the View in Dataverse

  1. Open a table (e.g., Feedback)
  2. Create a Public View (e.g., “Open Feedback”)

Step 2: Create the Entity List

  1. Open Portals Management > Entity Lists > + New
  2. Fill in details:
FieldDescription
NameE.g., “Feedback List”
Entity NameE.g., Feedback
ViewsSelect the view(s) you want to show
Web PageLink it to a page
Enable Create/Edit/DeleteOptional actions for end-users
Display SettingsGrid, Table, Pagination, Search

Step 3: Configure Additional Settings

  • Enable filters, export, and column visibility
  • Add custom JavaScript or use FetchXML filter for dynamic content

5. Embedding Forms and Lists in Web Pages

You can connect an Entity Form or List directly to a Web Page by:

  • Assigning the form/list to the web page through Portals Management
  • Using Web Page Content to insert a Liquid snippet:
{% entityform name: "Feedback Form" %}
{% entitylist name: "Feedback List" %}

Alternatively, in Design Studio, use the Form or List component.


6. Security and Permissions

Web Roles

Entity Forms and Lists require users to have appropriate Web Roles with assigned Table Permissions.

Entity/Table Permissions

  1. Go to Table Permissions
  2. Define scope:
    • Global – access to all records
    • Contact – user-owned records
    • Account – records owned by user’s account
  3. Assign Web Roles to the permission
  4. Define actions: Create, Read, Update, Delete, Append, Append To

Without the correct permissions, users will see access denied errors or won’t be able to submit forms.


7. Customizing Forms and Lists

JavaScript Enhancements

Add interactivity or dynamic behaviors:

document.getElementById("name").addEventListener("change", function() {
alert("Name changed!");
});

You can inject this via the Form Metadata > Custom JavaScript section.

CSS Styling

Override styles:

.entitylist {
background-color: #f8f8f8;
border: 1px solid #ddd;
}

Use Web Files or embed in the theme.

Liquid Templating

Control content display based on roles or form values:

{% if user.roles contains 'Admin' %}
<p>Welcome, Admin!</p>
{% endif %}

8. Real-World Use Cases

ScenarioEntity FormEntity List
Job application formAllows users to submit detailsAdmins view applications
Support ticket submissionUsers submit new ticketsUsers track their ticket status
Course registrationLearners register for classesAdmins view registrations
Feedback collectionVisitors submit feedbackModerators review submissions
Internal data submissionEmployees fill reportsManagers view submitted data

9. Best Practices

Best PracticeDescription
Use Main FormsAlways build and manage forms inside Dataverse
Minimal Required FieldsOnly ask for necessary data to improve user experience
Secure with Table PermissionsDon’t rely solely on Web Role access
Customize for RolesCreate separate views and forms for different user types
Test with Dummy AccountsUse test logins with different roles to validate UX and permissions
Use MetadataCustomize success messages, error handling, and redirection easily

10. Common Issues and Troubleshooting

IssueCauseFix
Form does not loadMissing permissionsCheck Table Permissions and Web Role assignment
Submit button disabledValidation or lookup failureCheck field requirements in Dataverse
Access denied to form or listWeb Role misconfigurationEnsure user is linked to Contact and assigned role
Unable to delete recordDelete not enabledEnable delete in Entity List config and table permissions

Leave a Reply

Your email address will not be published. Required fields are marked *