How data sources work
Adobe Dreamweaver users can add dynamic data by using the Bindings panel. The dynamic data objects that are shown on the Plus (+) menu are based on the server model that is specified for the page. For example, users can insert recordsets, commands, request variables, session variables, and application variables for ASP applications.
The following steps describe the process that is involved in adding dynamic data:
- When the user clicks the Plus (+) menu in the Bindings panel, a pop-up menu appears.
To determine the contents of the menu, Adobe Dreamweaver first looks for a DataSources.xml file in the same folder as the data sources (for example, Configuration/DataSources/ASP_Js/DataSources.xml). The DataSources.xml file describes the contents of the pop-up menu; it contains references to the HTML files that should be placed in the pop-up menu.
Adobe Dreamweaver checks each referenced HTML file for a title tag. If the file contains a title tag, the content of the title tag appears in the menu. If the file does not contain a title tag, the filename is used in the menu.
After Adobe Dreamweaver finishes reading the DataSources.xml file or if the file does not exist, Adobe Dreamweaver searches the rest of the folder to find other items that should appear in the menu. If Adobe Dreamweaver finds files in the main folder that aren't in the menu, it adds them to the menu. If subfolders contain files that aren't in the menu, Adobe Dreamweaver creates a submenu and adds those files to the submenu.
- When the user selects an item from the Plus (+) menu, Adobe Dreamweaver calls the
addDynamicSource()function, so that code for the data source is added to the user's document. - Adobe Dreamweaver goes through each file in the appropriate server model folder, calling the
findDynamicSources()function in each file. For each value in the returned array, Adobe Dreamweaver calls thegenerateDynamicSourceBindings()function in the same file to get a new list of all the fields in each data source for the user's document. Those fields are presented to the user as a tree control in the Dynamic Data or the Dynamic Text dialog box or in the Bindings panel. The data source tree for an ASP document might appear as shown in the following example:Recordset (Recordset1) ColumnOneInRecordset ColumnTwoInRecordsetRecordset (Recordset2) ColumnOfRecordsetRequest NameOfRequestVariable NameOfAnotherRequestVariableSession NameOfSessionVariable
- If the user double-clicks on a data source name in the Bindings panel to edit the data source, Adobe Dreamweaver calls the
editDynamicSource()function to handle the user edits within the tree. - If the user clicks the Minus (-) button, Adobe Dreamweaver gets the current node selection from the tree and passes it to the
deleteDynamicSource()function, which deletes the code that was added earlier with theaddDynamicSource()function. If it cannot delete the current selection, the function returns an error message. After thedeleteDynamicSource()function returns, Adobe Dreamweaver refreshes the data source tree by calling thefindDynamicSources()and thegenerateDynamicSourceBindings()functions. - If the user selects a data source and clicks OK in the Dynamic Data or the Dynamic Text dialog box, or clicks Insert or Bind in the Bindings panel, Adobe Dreamweaver calls the
generateDynamicDataRef()function. The return value is inserted in the document at the current insertion point. - If the user displays the Dynamic Data or the Dynamic Text dialog box to edit an existing dynamic data object, the selection in the data source tree needs to be initialized to the dynamic data object. To initialize the tree control, Adobe Dreamweaver goes through each file in the appropriate server model folder (for example, the Configuration/DataSources/ASP_Js folder), calling the implementation of the
inspectDynamicDataRef()function in each file.Adobe Dreamweaver calls the
inspectDynamicDataRef()function to convert the dynamic data object back from the code in the user's document to an item in the tree. (This process is the reverse of what occurs when thegenerateDynamicDataRef()function is called.) If theinspectDynamicDataRef()function returns an array that contains two elements, Adobe Dreamweaver shows with a visual cue which item in the tree is bound to the current selection. - Every time the user changes the selection, Adobe Dreamweaver calls the
inspectDynamicDataRef()function to determine whether the new selection is dynamic text or a tag with a dynamic attribute. If it is dynamic text, Adobe Dreamweaver displays the bindings for the current selection in the Bindings panel. - Using the Dynamic Data or the Dynamic Text dialog box or the Bindings panel, it's possible to change the data format for a dynamic text object or a dynamic attribute that the user has already added to the page. When the format changes, Adobe Dreamweaver calls the
generateDynamicDataRef()function to get the string to insert into the user's document and passes that string to theformatDynamicDataRef()function (see formatDynamicDataRef()). The string that theformatDynamicDataRef()function returns is inserted in the user's document.