Page Object

Pages are the main way to display and organize visual data in Dynamics 365 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.

The structure of a page is hierarchical and breaks down in to three sections. The first block contains metadata for the overall page; the type of the page and the source table it is 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.

When developing a solution for Dynamics 365 Business Central, you will 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.

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.

Snippet support

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

Tip

Use Ctrl+Space to trigger IntelliSense and get assistance on code completion, parameter info, quick info, and member lists.

Views

Views in Dynamics 365 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";
            }
        }
    }
}

See Also

AL Development Environment
Views
Adding Help Links from Pages, Reports, and XMLports
Page Extension Object
Page and Page Extension Properties Overview
Page Properties
Developing Extensions
Configure Context-Sensitive Help