The server behavior API functions are called in the following scenarios:

  • The findServerBehaviors() function is called when the document opens and again when the participant is edited. It searches the user’s document for instances of the server behavior. For each instance it finds, the findServerBehaviors() function creates a JavaScript object, and uses JavaScript properties to attach state information to the object.

  • If it is implemented, Dreamweaver calls the analyzeServerBehavior() function for each behavior instance that is found in the user’s document after all the findServerBehaviors() functions are called.

    When the findServerBehaviors() function creates a behavior object, it usually sets the four properties (incomplete, participants, selectedNode, and title). However, it is sometimes easier to delay setting some of the properties until all the other server behaviors find instances of themselves. For example, the Move To Next Record behavior has two participants: a link object and a recordset object. Rather than finding the recordset object in its findServerBehaviors() function, wait until the recordset behavior’s findServerBehaviors() function runs because the recordset finds all instances of itself.

    When the Move To Next Record behavior’s analyzeServerBehavior() function is called, it gets an array that contains all the server behavior objects in the document. The function can look through the array for its recordset object.

    Sometimes, during analysis, a single tag in the user’s document is identified by two or more behaviors as being an instance of that behavior. For example, the findServerBehaviors() function for the Dynamic Attribute behavior might detect an instance of the Dynamic Attribute behavior that is associated with an input tag in the user’s document. At the same time, the findServerBehaviors() function for the Dynamic Textfield behavior might look at the same input tag and detect an instance of the Dynamic Textfield behavior. As a result, the Server Behaviors panel shows the Dynamic Attribute block and the Dynamic Textfield. To correct this problem, the analyzeServerBehavior() functions need to delete all but one of these redundant server behaviors.

    To delete a server behavior, an analyzeServerBehavior() function can set the deleted property of any server behavior to the value true. If the deleted property still has the value true when Dreamweaver finishes calling the analyzeServerBehavior() functions, the behavior is deleted from the list.

  • When the user clicks the Plus (+) button in the Server Behaviors panel, the pop-up menu appears.

    To determine the content of the menu, Dreamweaver first looks for a ServerBehaviors.xml file in the same folder as the behaviors. ServerBehaviors.xml references the HTML files that should appear in the menu.

    If the referenced HTML file contains a title tag, the contents of the title tag appear in the menu. For example, if the ServerBehaviors/ASP_Js/ GetRecords.htm file contains the tag <title>Get More Records</title>, the text Get More Records appears in the menu.

    If the file does not contain a title tag, the filename appears in the menu. For example, if GetRecords.htm does not contain a title tag, the text GetRecords appears in the menu.

    If there is no ServerBehaviors.xml file or the folder contains one or more HTML files that are not mentioned in ServerBehaviors.xml, Dreamweaver checks each file for a title tag and uses the title tag or filename to populate the menu.

    If you do not want a file that is in the ServerBehaviors folder to appear in the menu, put the following statement on the first line in the HTML file:

     <!-- MENU-LOCATION=NONE -->
  • When the user selects an item from the menu, the canApplyServerBehavior() function is called. If that function returns a true value, a dialog box appears. When the user clicks OK, the applyServerBehavior() function is called.

  • If the user edits an existing server behavior by double-clicking it, Dreamweaver displays the dialog box, executes the onLoad handler on the body tag, if one exists, and then calls the inspectServerBehavior() function. The inspectServerBehavior() function populates the form elements with the current argument values. When the user clicks OK, Dreamweaver calls the applyServerBehavior() function again.

  • If the user clicks the Minus (-) button, the deleteServerBehavior() function is called. The deleteServerBehavior() function removes the behavior from the document.

  • When the user selects a server behavior and uses the Cut or Copy commands, Dreamweaver passes the object that represents the server behavior to its copyServerBehavior() function. The copyServerBehavior() function adds any other properties to the server behavior object that are needed to paste it later.

    After the copyServerBehavior() function returns, Dreamweaver converts the server behavior object to a form that can be put on the Clipboard. When Dreamweaver converts the object, it deletes all the properties that reference objects; every property on the object that is not a number, Boolean value, or string is lost.

    When the user uses the Paste command, Dreamweaver unpacks the contents of the Clipboard and generates a new server behavior object. The new object is identical to the original, except that it does not have properties that reference objects. Dreamweaver passes the new server behavior object to the pasteServerBehavior() function. The pasteServerBehavior() function adds the behavior to the user’s document. After the pasteServerBehavior() function returns, Dreamweaver calls the findServerBehaviors() function to get a new list of all the server behaviors in the user’s document.

    Users can copy and paste behaviors from one document to another. The copyServerBehavior() and pasteServerBehavior() functions should rely only on properties on the behavior object to exchange information.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy