There are two minor changes to the requestable products filter in the Web Portal, managed by the configuration key VI_ITShop_AccProduct_Filter.
- By default, IT Shop products (AccProduct) that are not assigned to any service category are not displayed as requestable products (e.g. the delegation product).
- Assignment resources (objects in the QERAssign table) are displayed as requestable products in the IT Shop.
As mentioned above, the grid and tree controls now support true on-demand loading of data.
In previous versions, it was necessary to load a collection before displaying its content in a grid or a tree. This is no longer necessary. If you configure a control to use the database as its data source, the control will then automatically load the required data. (The control will never remove objects from the collection, it only adds new ones.)
- The grid control implements page-based loading. By default, only the first page of objects is loaded. Grouping works the same way: only the data required for the selected group is loaded.
- The tree control implements hierarchical loading. By default, only the first level of the hierarchical structure objects is loaded. When expanding a tree node, the next level of the data structure is loaded.
It is important to note two consequences of this new mode.
- At any time, the collection will only hold a subset of the logical data set. Depending on how the user has configured paging and filtering on the control, the collection will only hold the data which is displayed. For example, the logical data set could consist of all PersonWantsOrg objects for a specific employee. If you configure a database-bound grid, only PersonWantsOrg required to display the first grid page will be present in the collection after the page is first rendered. If you need to perform an operation on all PersonWantsOrg objects, you will need to manually load them.
- Data events will be raised for every load operation. Specifically, insert and bulk-load events will be raised whenever a paging, sorting or filtering operation causes new objects to be added to the collection.
The standard components have been changed as follows in order to benefit from performance improvements.
- Object collection components are now expected to load the data that they need to display. There is no need to load data into a collection before the collection is given to an object collection component. Instead, just supply the TableName() and DbWhereClause() functions and the object collection component will load and display the data accordingly.
- Object selection components do not actually load the data anymore. Object selection components are expected to provide a WHERE clause, without loading data.
Object selection and collection components are designed to work well with each other. The WHERE clause supplied by the object selection component can be directly mapped to the object collection component, so that a change to the WHERE clause triggers a refresh of the data display.
The standard component VI_Edit_FK provides an implementation example of this model.
For more information about the data source API, refer to the documentation for the VI.WebRuntime.Data.DbDataSource class.
The following control layout properties are no longer supported. References to these properties will result in Web Designer compilation errors. In some cases, the properties have been renamed and references will need to be updated to reflect the new name.
Grid band |
ImagePagingBack
ImagePagingForward
CsvSeperator
Image_SortDesc
Image_SortAsc
Image_SortNone
PagesInSelector
CssClassNameContainerResizeInactive
CssClassNameContainerResize
UseSplitTables
IconPlus
IconWhite
IconMinus
RenderSortingWithCss
CssClassNameSortImage
CssClassNameNaviCell
CssClassNameAutoFilterText
CssClassNameFilter
InteriorNaviCell
AutoFilterMode
AutoNormalizeLayout (is now called DoNotAutoNormalizeLayout) |
Tree band |
TreeLevelCssClassPrefix
LineMode
ShowRootLines
IndentationWidth
CssClassNameContent
CssClassNameBlockDiv |
Label |
AppendImage |
Button |
AppendImage
CssClassNameContainer |
Table |
WrapInContainer
CssClassNameWrapper |
Container |
Wrap (is now called AutoGenSubContainers) |
TextBox |
CssClassNameWatermark
CssClassNameTextarea
CssClassNameMandatory (is now called CssClassNameIfMandatory)
CssClassName (is now called CssClass) |
Drop down list |
CssClassName (is now called CssClass) |
Radio button |
CssClassName (is now called CssClass) |
Date control |
CssClassNameTableNavigation
CssClassNameTableDays
CssClassNameHeaderRow
CssClassNameCellDefault
CssClassNameCellSelected
CssClassNameCellCurrent
CssClassNameCellCurrentAndSelected
CssClassNameDayLink
CalendarTable
DateSelectBox
CalendarNavigationlink
CalendarTableDays
CalHeaderCell
CalHeaderRow
ButtonCSSName
NoEnterDateManual
CssClassNametextBox
CssclassNameButton
CssClassNameCalendar |
Layout panel |
RowCssClass (is now called CssClassNameRow)
CellCssClass (is now called CssClassNameCell)
RenderMode (is now called IsTableMode) |
Tab control |
CssClassNameNaviCell
RenderMode |