| XPages Separates Presentation and Content. - Should sound very familiar --> form vs document.
 
 
 A control is targeted to a data source. It's called binding.
 
 Common Control Data Sources:
 - Domino Objects (e.g. documents, views, fields, etc.)
 - Java & JS objects, arrays, lists, etc.
 - JSON objects
 
 A control is a "Dojo" control. You can use "Dojo dijits" that are not on the standard XPages Palette of controls.
 -  You have the whole Dojo 1.x kit
 -  You can do TypeAhead, use a really cool Rich Text Editor, and other fuzzier things like a progress bar.
 (only two are "on" by default).
 
 To turn the other Dojo controls on:
 1. In the All Properties tab of the XPage:
 Set the dojoParseOnLoad to true
 Set the dojoTheme to true
 2. You then can load/use a dojo module by selecting it in the resources field.
 3. Then you create a <div> in the Source tab and specify it to be a Dojo dijit.
 <div DojoType="dijit.ProgressBar" style="width:400px" id="myProgBar"></div>
 This will be more "GUI" in 8.5.1.
 
 
 The "Simple" controls are typically bound to a DominoDocument field.
 The "Container" controls are typically bound to Domino objects like the DominoView
 - Includes ViewPanel, Data Table, etc.
 - Unlike the Embedded View element, there is no limit on number of data sources on a single XPage.
 
 
 The syntax for displaying a document is different as an XPage.
 http://myserver.mindwatering.local/DatabaseName.nsf/p02.xsp?documentID=11111111111111111111111111113211&action=openDocument
 instead of
 http://myserver.mindwatering.local/DatabaseName.nsf/ViewAlias/11111111111111111111111111113211?OpenDocument
 
 
 ViewPanel Column Binding:
 When you go to bind a XPage viewPanel control column, you can choose a "real" column in the view bound, or a formula.
 The formula can be formula or JavaScript. You reference the JavaScript properties of "this" panel object.
 
 A column can show "text" or "html". This is very useful if you are presenting native MIME and want say an HTML e-mail body to display.
 
 
 Ajax is built-in.
 - For controls like the "pager", you can choose to refresh the whole page or just the target control.
 -- additionally, you can refresh just computed fields or a single table cell, too. (see Server Options section for the control's actions.)
 - There is a control called typeAhead.
 
 
 Programming Support.
 - Includes JavaScript (client and server), Java, and @Formula.
 - Can call Java from JS.
 - Use _dump() for debugging or print() for status messages.
 -- e.g. _dump(@DbName) or print(@DbName)
 - Use languages within other languages.
 
 Example of getting the database name:
 alert ("#{javascript: @DbName() }");'
 var db:NotesDatabase = null;
 ...
 db.compact()
 
 
 previous page
 
 
 |