Overview

Custom UI Models can create highly interactive custom user interfaces and are a replacement option for ClickOnce/WinForm-based custom component features. The Custom UI Models retain all the features of a normal UI model-based data form, including HTML layout and interactivity using UI fields and actions. Unlike a typical data form, a Custom UI Model data form does not retrieve its data through load or save implementations in the data form spec. Instead, a couple of methods are available to provide data to a Custom UI Model. A software developer can use code within the Custom UI Model to retrieve, display, and manage data to and from a source of data, such as a web service. Another popular technique is to open a Custom UI Model from a parent user interface. Using this method, the parent provides the data to the Custom UI Model dialog screen.

Figure: The Recognition credits dialog screen is a good example of using a Custom UI Model to support complex data entry, such as adding a payment.

Opening a Custom UI Model from a parent user interface is a recommended technique when managing child records, such as a constituent's solicit codes, within a batch.

Figure: Constituent batch in Web Shell utilizes a Custom UI Model to manage child solicit codes for a constituent.

Page Sections That Use CustomComponent Elements

In the transition from the Windows-based ClickOnce application to Web Shell, many existing feature types that displayed within a page section and are available to ClickOnce developers remain available in Web Shell. A page section that displays a feature such as a report or data list requires little or no modifications to the page.

One must note that a data form spec that contains a FormUIComponent element requires that the developer create a UI model for the data form, but the section metadata in the page spec that references the data form does not need to be updated.

One feature type that could not automatically be carried over to Web Shell is the custom component. Unlike most other features displayed in page sections, custom components are written entirely in WinForm code with no metadata describing its structure. If your custom page spec contains a CustomComponent XML element, you need to convert the custom component to a Web Shell-supported feature.

Note: Page sections that use a CustomComponent element are not supported in Web Shell and must be converted to a supported section type such as a data form (AddDataFormTemplateSpec, EditDataFormTemplateSpec, ViewDataFormTemplateSpec) that utilizes a UIModel or Custom UI Model (available as of the Blackbaud CRM 2.93 release). See also Custom Page Sections using a Custom UI Model.