Global variables to store datastore information are defined in the master page immediately after the script tag:
// on-device data object name... var dbmgr; // account datastore name... var accountDb; // array for account sort order options... var accountSortOrderArray = new Array(3) // array for account column internal labels... var accountCols = new Array(3); |
Within the body tag of the master page, the initPage() function is set to execute immediately when the page is loaded:
<body onload="initPage()" onUnload="exitPage()"> |
The initPage() function stores the "Customers" datastore name in a variable and opens the on-device datastore:
var dbname = "Customers";
if (undefined == dbmgr) {
dbmgr = CreateObject('avantgo.db');
}
if (null == dbmgr) {
alert('Error: unable to create avantgo.db');
return false;
}
accountDb = dbmgr.open(dbname, "r");
if (null == accountDb) {
alert("failed to open db");
return;
} |
The initPage() function then sets up the List Viewer object:
list = document.getElementById("accountTable");
list.setDbSet(accountDb); |
And lastly the initPage() function sets the attributes the List Viewer object will need to display the data:
list.setColumnCount(3); list.setColumnTitle(0, "Customer"); list.setColumnWidth(0, 60); list.setColumnDSName(0, "ContactName"); list.setColumnHeaderImage(0, 1); |
list.setColumnTitle(1, "Company"); list.setColumnWidth(1, 60); list.setColumnDSName(1, "CompanyName"); list.setColumnHeaderImage(1, 1); list.setColumnTitle(2, "Postal Code"); list.setColumnWidth(2, 40); list.setColumnDSName(2, "PostalCode"); |
Labels in setColumnDSName() functions must match the data object labels in the XML data file downloaded to the device.
In summary, the List Viewer object is a convenient tool to provide user access to large datasets. Other approaches involving the dynamic generation of a table are more resource-intensive and cause more user perceivable transitions as the page is regenerated for searches and sorting. This functionality is currently supported by the M-Business XML datastore and is not available for UltraLite development.
| Send feedback about this page using email. | Copyright © 2008, iAnywhere Solutions, Inc. |