Page object

Pages are the main way to display and organize visual data in Business Central. They are the primary object that a user will interact with and have a different behavior based on the type that you choose. Pages are designed independently of the device they are to be rendered on, and in this way the same page can be reused across phone, tablet, and web clients.

When developing a solution for Business Central, you follow the code layout for a page as shown in the page example below, but for more details on the individual controls and properties that are available, see Page property overview.

If you want to, for example, add functionality to a page that already exists in Business Central, you can create a page extension object that changes an existing page object. For more information, see Page extension object. Depending on how much you want to change on an existing page, you can also create a page customization object, which offers modifications on actions and layout. For more information, see Page customization object.

Important

Only pages with the Extensible property set to true can be extended.

Note

Extension objects can have a name with a maximum length of 30 characters.

Page syntax

The structure of a page object is hierarchical and breaks down into three sections:

  • The first block contains metadata for the overall page; the type of the page and the source table it's showing data from.
  • The next section; the layout, describes the visual parts on the page.
  • The final section details the actions that are published on the page.

The order in which the sections appear matters. The following example illustrates the ordering:

page ObjectId PageName
{
    // page properties such as 
    PageType = Card;
    SourceTable = Customer;
    ContextSensitiveHelpPage = 'my-feature';

    layout {}

    actions {}

    views {} // only for pages of type ListPage

    // optionally, add AL code here
}

Snippet support

Typing the shortcut tpage will create the basic layout for a page object when using the AL Language extension for Microsoft Dynamics 365 Business Central in Visual Studio Code.

Tip

Use Ctrl+Space to trigger IntelliSense and get assistance on code completion, parameter info, quick info, and member lists. For more information about snippets, see Syntax and snippets.

Add tooltips on page fields

Starting in Business Central 2024 release wave 1, you can define tooltips on table fields. When a tooltip is defined on a table field, any page that uses the field automatically inherits the tooltip.

For more information, see Add tooltips to table and page fields.

Views

Views in Business Central are used on list pages to define a different view of the data on a given page. Views can be defined for Pages, Page extensions, and Page customization. For more information, see Views.

Page example

page 50101 SimpleCustomerCard
{
    PageType = Card;
    SourceTable = Customer;
    ContextSensitiveHelpPage = 'my-feature';

    layout
    {
        area(content)
        {
            group(General)
            {
                field("No."; "No.")
                {
                    ApplicationArea = All;
                    CaptionML = ENU = 'Hello';

                    trigger OnValidate()
                    begin
                        if "No." < '' then
                            Message('Number too small')
                    end;
                }

                field(Name; Name)
                {
                    ApplicationArea = All;
                }
                field(Address; Address)
                {
                    ApplicationArea = All;
                }
            }
        }
    }
    actions
    {
        area(Navigation)
        {
            action(NewAction)
            {
                ApplicationArea = All;
                RunObject = codeunit "Document Totals";
            }
        }
    }
}

AL development environment
Views
Adding help links from pages, reports, and XMLports
Page extension object
Page, page fields, and page extension properties
Page properties
Developing extensions
Configure context-sensitive help