Designer

Labels
AJAX(112) App Studio(9) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(178) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(184) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(3) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
Designer
Friday, June 15, 2012PrintSubscribe
Working with Pages

The Pages tab on the Project Explorer displays a hierarchy of application elements, starting with pages. Pages are composed of containers with data views and custom user controls.

Top-level pages are pages on the first level of the hierarchy.

The examples of top-level pages are Home, Customers, Employees, Categories, Customer Demographics, and Region. The examples of child pages are Orders, Customer Demo, Order Details, Employee Territories, and Products.

The Project Explorer displays a hierarchy of pages and page elements.

Creating a Page

A top-level page is created by clicking on the New Page icon on the toolbar.

New Page icon at the top of Project Explorer window.

This will open the New Page form where page properties can be specified.

The properties Name, Index, and Path effect the creation of a page.

The Name must be a unique sequence of alphanumeric characters that start with a letter.

The Index is an optional numerical order of the page. If it is not specified, then it will be assigned automatically when the page is saved. If it is specified, then the designer will try to position the page in the requested order.

The Path determines the hierarchical location of a page, as well as reflecting the text displayed on the menu to the end user. The vertical bar character “|” is used to separate multiple levels in the hierarchy. If there is no separator, then the page will be placed at the top of the hierarchy.

Below are sample settings for a new top-level page with a specific Index and Path.

Property Value
Name MyNewPage
Index 1005
Path My New Page

The page will be placed in the specified location based on the path and index when created in the Northwind sample.

New Page with index and path placed at specified location.

Here are the properties for a new page with an existing multi-level path.

Property Value
Name MyNewPage
Path Customers | Orders | My New Page

The page will be placed in the correct location. If the Path includes separators, then any Index is ignored, and the page is placed as the last child of an existing parent.

Page created with an existing mult-level path will be placed in the correct location.

If there is no matching path, then the missing parent pages will be created.

Property Value
Name MyNewPage
Path Customer2 | Orders | My New Page

The parent pages will have a special icon, because the External URL property of the parent pages is set to “about:blank”. Such pages will not have a physical implementation in the application and will simply designate static nodes in the navigation hierarchy.

Page created with a nonexisting multilevel path will create blank pages to match the path.

If a top-level page is created without a specified Index, then the page will be placed at the bottom of the hierarchy.

Property Value
Name MyNewPage
Path My New Page

The framework will automatically handle index allocation after the page is created – it will assign the first page with Index of “1000” and auto-increment by “10” for every succeeding page.

New Page with path but without index placed at the end of the list of pages.

If a page is created without a path, then it will become a system page. This page will not appear on the menu, but can be accessed via URL. The new system page will be added at the bottom of the hierarchy with a different icon. System pages are typically used to provide utility functions in applications and are meant to be presented to users through programmatic commands.

Page created without a path will be a system page.

When a page is selected in the Project Explorer, the New Child Page option will be available on the toolbar. It can also be accessed via the context menu of the page node.

New Child Page icon on the toolbar of Project Explorer.

Selecting this option will open the New Child Page form in the Designer window with Index and Path properties unavailable.

Specifying a name and creating a child page will add the page as the last child of the parent.

Creating a child page under Customers page node.

Rearranging Pages

Moving pages in the hierarchy can be accomplished by dragging and dropping the page nodes in the Project Explorer window. Dropping a page onto another page will place it under the hierarchy of the target page.

Dragging and dropping My New Page onto Orders page node.     My New Page moved under Orders page node.

The page can be moved from one node to another with Cut and Paste commands in the context menu. Use the Cut option on the context menu, and use Paste on the target page.

Cut context menu option on My New Page node.     Paste context menu option on Orders controller.

Holding CTRL while dropping directly onto a page will duplicate the page. If the drop location already has a page with the same name, the duplicated page name will be appended with a number. This can also be done by copying the first page, and then pasting the page in another location.

My New Page being copied onto Orders page node.     My New Page duplicate page node appended with a number.

Dropping a page on the right side of a target page node will place the page after the target. The mouse cursor will indicate where the page will be placed.

My New Page dropped after Orders page node.     My New Page dropped after Orders page node.

Dropping a page on the left side of a target page node will place the page before the target.

My New Page dropped before Orders page node.     My New Page page node placed before Orders in the Project Explorer.

Dragging and dropping a page with child nodes will move the child page nodes as well. Cutting or copying a page with children will also move or copy the entire group to the new location.

Reports page node with child pages dropped on Region page node.     Reports page node moved under Region along with all child pages.

Multiple pages can be selected by holding CTRL and clicking on pages. Clicking on a page node, holding SHIFT, and clicking another page node will select a range.

Customers, Employees, Categories, and Region page nodes selected.

Any drag and drop operations will be based on the order of selection. For example, the pages below were selected in the order of Customers, Employees, Categories, Region, and dropped to the right of Home. This resulted in the pages being reordered to Home, Region, Categories, Employees, and Customers.

Several selected pages dropped after Home node.     Several selected pages dropped after Home node.

Deleting Pages

Delete a page by right-clicking on the page and selecting Delete option.

Delete option for Customer Demographics page node.

You can also select the page(s) and press Delete on your keyboard.

Multiple page deletion prompt.

Renaming Page Nodes

The context menu of page nodes offers Rename option. If the command is activated on a top-level or child page, then the selected segment of the page Path will change. If the command is activated on a system page, then the Title of the page will change. The Path of a system page is always empty.

The following example shows renaming of the Customers / Orders / My New Page page node.

My New Page with Rename context menu option.     My New Page renamed.

The keyboard shortcut F2 will activate rename command on the selected page node. 

If you need to change the physical Name of the page, then select the page and change the Name property in the Designer window.

Hiding Pages from Navigation Menu

For certain pages, it may not be necessary to place them on the navigation menu. The Include in Menu option will remove the page from the menu.

Using the 'Exclude from Menu' context menu option for 'Customer Demographics' page.      'Customer Demographics' page is now excluded from the menu.

The page is still accessible via URL.

Thursday, June 7, 2012PrintSubscribe
Lookup of User Identity

Both name and id of a user selected in a lookup window can be captured in a database table when necessary. Let’s set up a lookup field to capture both properties of the user identity.

Start SQL Server Management Studio. In the Object Explorer, right-click Database / Northwind / Tables / dbo.Orders table node, and select Design option.

Design Orders table in the Northwind database using SQL Server Management Studio.

Add two columns with the following settings:

Column Name Data Type Allow Nulls
OwnerID uniqueidentifier True
OwnerName nvarchar(50) True

Save the table modification. Refresh the Orders controller.

Refresh the Orders table.

Regenerate the project. Navigate to the Orders page, and edit a record. The OwnerID and OwnerName fields will be visible at the bottom of the form, but are currently only simple text boxes.

OwnerID and OwnerName fields are rendered as simple text boxes.

Let’s configure the OwnerID field as a User Id Lookup and have it copy the user name into OwnerName field. The OwnerName will become an alias of OwnerID data field. Only Administrators will be allowed to modify the owner of the record.

Start the Project Designer. In the Project Explorer, switch to the Controllers tab. Double-click on Orders / Fields / OwnerID field node.

OwnerID field in the Orders controller in Code On Time Project Explorer.

Make the following changes:

Property New Value
Items Style User Id Lookup
Copy OwnerName=UserName
“Write” Roles Administrators

Press OK to save the field. In the Project Explorer, double-click on Orders / Views / editForm1 / c1 – Orders / OwnerID data field node.

OwnerID data field of editForm1 view of Orders controller.

Assign an alias for the data field:

Property New Value
Alias OwnerName

Press OK to save the data field. In the Project Explorer, right-click on Orders / Views / editForm1 / c1 – Orders / OwnerName data field node, and select Delete option.

Delete OwnerName data field of editForm1 view in Orders controller.

Confirm the operation. On the toolbar, select Browse option to regenerate the web application.

Navigate to the Orders page, and edit a record. If your user account belongs to the Administrators role, then the field is rendered as a lookup.

OwnerName field rendered as a User Id Lookup.

Activate the lookup, and a lookup window will open and display a list of users.

List of users displayed in the lookup window.

Select a user from the lookup, and the name of the user will be copied into the field Owner Name.

User Name inserted into the Owner Name field.

Save the field. If you look at the record in the database, both UserId and UserName fields have been populated.

Both UserID and UserName have been inserted into the record.

Wednesday, June 6, 2012PrintSubscribe
Creating Multiple Views with the Same Base

Multiple views can be created to support alternative sort and filter expressions. If the views have the same data field configuration, then it is possible to create “empty” views that reference a shared base view.

Let’s create several views in the Customers data controller. Start the Project Designer. In the Project Explorer, switch to the Controllers tab. Right-click on Customers / Views node, and select New View.

Create New View in Customers controller.

Give this view the following properties:

Property Value
Id customersfromUSA
Type Grid
Command command1
Label Customers from USA
Header Text This is a list of customers from the United States.
Filter Expression Country='USA'
Base View Id grid1

Press OK to save the view. In the Project Explorer, right-click on Customers / Views node and select New View.

New View for Customers controller.

Configure the view:

Property Value
Id customersfromUK
Type Grid
Command command1
Label Customers from UK
Header Text This is a list of customers from the United Kingdom.
Filter Expression Country='UK'
Base View Id grid1

Press OK to save the view. The Project Explorer window should look like the picture below.

CustomersfromUSA and CustomersfromUK views are based on grid1 view.

On the toolbar, press Browse.

When the application loads in the browser window, navigate to the Customers page. On the action bar, activate the View dropdown and select Customers from USA. The view inherits data fields from the base view, grid1. Only customers from USA are displayed.

Customers from USA view inherits the data field configuration from the base view.

The Customers from UK view also inherits the same data field set, but filters to only customers from the UK.

Customers from UK also inherits the base view's data field configuration, but with different filtering.

If the base view of grid1 is modified, then the views will change accordingly.

Switch back to the Project Designer. In the Project Explorer, right-click on Customers / Views / grid1 / Postal Code data view node, and select Delete option.

Delete the PostalCode data field from the 'grid1' view of Customers controller.

Confirm the operation. In the Project Explorer, right-click on Customers / Views / grid1 view node, and click New Data Field option.

New Data Field in Customers controller.

Assign the Field Name for the data field:

Property Value
Field Name Fax

Press OK to save the data field. On the toolbar, click the Browse option.

Navigate to the Customers page. The default grid1 view will no longer have Postal Code column, and will now have Fax column at the right.

'Grid1' view no longer has PostalCode, has Fax instead.

On the right side of the action bar, activate the View dropdown and select Customers from USA. This view shows the same set of data fields as grid1.

CustomersfromUSA view no longer has PostalCode, has Fax column instead, just like grid1 view.

The same data field configuration applies to Customers from UK view.

CustomersfromUK view has the same changes as grid1 base view.