cfformgroup

Description

Creates a container control for multiple form controls. Used in the cfform tag body of Macromedia Flash and XML forms. Ignored in HTML forms.

Category

Forms tags

Syntax

<cfformgroup 
type = "group type"
label = "label"
style = "style specification"
selectedIndex = "page number">
width = "pixels"
height = "pixels"
enabled = "Yes" or "No"
visible = "Yes" or "No"
OnChange = "ActionScript expression"
toolTip = "Tip text"
...ColdFusion forms controls
</cfformgroup>
or
<cfformgroup
type = "repeater"
query = "query object"
startrow = "row number"
maxrows = "integer">
...ColdFusion forms controls
</cfformgroup>

See also

cfapplet, cfcalendar, cfform, cfformitem, cfgrid, cfinput, cfselect, cfslider, cftextarea, cftree, Using the cfformgroup tag to structure forms in Creating Forms in Macromedia Flash and Using cfformgroup tags in Creating Skinnable XML Forms in ColdFusion MX Developer's Guide.

History

ColdFusion MX 7: Added this tag.

Attributes

The following table lists the attributes and their behavior in Flash forms. For XML, if not otherwise noted, the attribute is passed to the XML but is not interpreted by the basic XSL style sheet provided with ColdFusion MX.

Note: Attributes that are not marked as supported in XML are not handled by the skins provided with ColdFusion MX. They are, however, included in the generated XML

Attribute Req/Opt; Formats Default Description

type

Required;

Flash and XML

 

XML: Can be any XForms group type defined in the XSLT. The XSL skins provided with ColdFusion MX support the following types:

  • horizontal: align child tags horizontally within a form and put this tag's label attribute to the left of the children.
  • vertical: align child tags vertically within a form and put this tag's label attribute to the left of the children.
  • fieldset: corresponds to the HTML fieldset tag, which groups its children, typically by drawing a box around them and replacing part of the top line with legend text. To specify the legend, use the label attribute. To specify the box dimensions, use the style attribute with height and width values. You must explicitly use cfformgroup type="vertical" inside this formgroup to align its child tags vertically.

 

 

Flash: Must be one of the following:

  • repeater: dynamically creates an instance of the cfformgroup's child tag or tags for each row of a query object, without requiring ColdFusion to recompile the Flash SWF file when the number of rows changes.
  • horizontal: aligns child tags horizontally within a form and put this tag's label attribute to the left of the children. Use this tag to arrange individual controls horizontally.
  • vertical: aligns child tags vertically within a form and puts this tag's label attribute to the left of the children. Use this tag to arrange individual controls vertically.
  • hbox: aligns children horizontally. Use this type to arrange groups of form controls horizontally. Do not use this attribute to align individual controls horizontally, because the child controls do not align properly; use the horizontal type instead.
  • vbox: aligns children vertically. Use this type to arrange groups of controls vertically. Do not use this attribute to align individual controls vertically, as the child controls will not align properly; use the vertical type instead.

 

 

 

  • hdividedbox: aligns children horizontally. Each child is in a box with a border, and there are dividers between the boxes that users can move to change the relative sizes of the children. Use a tag with this attribute to arrange groups of form controls horizontally. You cannot use this attribute to align individual controls horizontally.
  • vdividedbox: aligns children vertically. Each child is in a box with a border, and there are dividers between the boxes that users can move to change the relative sizes of the children. Use this type to group form controls, for example as a unit in an hbox form group. Do not use this attribute to align individual tags vertically.
  • panel: a container consisting of a title bar containing the label attribute text, a border, and a content area with vertically arranged children.
  • tile: places the children in a rectangular grid.
  • accordion: places each child in a pleat of an expanding and contracting accordion. Define each pleat using a cfformgroup type="page" tag.
  • tabnavigator: places the children in a tabbed dialog box. Define each tab using a cfformgroup type="page" tag.
  • page: places the children tags, aligned vertically, in a single tab of a parent tabnavigator or pleat of an accordion container.

query

Required for type= repeater, ignored otherwise;

Flash

 

The query to use with the repeater. Flash creates an instance of each of the cfformgroup tag's child tags for each row in the query. You can use the bind attribute in the child tags to use data from the query row for the instance.

startrow

Optional;

Flash

0

Used only for the repeater type; ignored otherwise.

Specifies the row number of the first row of the query to use in the Flash form repeater. This attribute is zero-based: the first row is row 0, not row 1 (as in most ColdFusion tags).

maxrows

Optional;

Flash

 

Used only for the repeater type; ignored otherwise.

Specifies the maximum number of query rows to use in the Flash form repeater. If the query has more rows than the sum of the startrow attribute and this value, the repeater does not use the remaining rows.

label

Optional;

Flash and XML

 

Label to apply to the form group.

In Flash, does the following:

  • For a page or panel form group, determines the label to put on the corresponding accordion pleat, the tabnavigator tab, or the panel title bar. For a Flash horizontal or vertical form group, specifies the label to put to the left of the group.
  • Ignored in Flash for repeater, hbox, hdividedbox, vbox, vdividedbox, tile, accordion, and tabnavigator types.

style

Optional;

Flash and XML

 

Flash: A Flash style specification in CSS format. For detailed information on specifying Flash styles, see Creating Forms in Macromedia Flash in ColdFusion MX Developer's Guide.

XML: An inline CSS style specification.

selectedIndex

Optional;

Flash only

 

Used only for accordion and tabnavigator types; ignored otherwise. Specifies the page control to display as open, where 0 (not 1) specifies the first page control defined in the group.

width

Optional;

Flash and XML

 

Width of the group container, in pixels. If you omit this attribute, Flash automatically sizes the container width. Ignored for Flash repeater type.

height

Optional;

Flash

 

Height of the group container, in pixels. If you omit this attribute, Flash automatically sizes the container height. Ignored for Flash repeater type.

enabled

Optional;

Flash

Yes

Boolean value specifying whether the controls in the form group are enabled. Disabled controls appear in light gray.

visible

Optional;

Flash

Yes

Boolean value specifying whether the controls in the form group are visible. If the controls are invisible, the space that would be occupied by visible controls is blank.

onChange

Optional;

Flash

 

Tabnavigator and accordion types only: ActionScript expression or expressions to execute when a new tab or accordion page is selected.

Note: The onChange event occurs when the form first appears.

tooltip

Optional;

Flash

 

Text to display when the mouse pointer hovers in the form group area. If a control in the form group also specifies a tooltip, Flash displays the control's tooltip when the mouse pointer hovers over the control.

Usage

This tag requires an end tag. This tag is ignored if the cfform type is HTML; any tag body's contents are interpreted as if the surrounding cfformgroup does not exist.

In Flash format forms, this tag organizes the contents of the form. It groups and arranges child tags. The body of this tag can contain the following tags; all other tags and text are ignored:

For more information on using this tag in Flash forms, see Creating Forms in Macromedia Flash in ColdFusion MX Developer's Guide.

In XML format, ColdFusion passes the tag and its attributes to the XML; it is the responsibility of the skin XSLT to handle the XML. The ColdFusion basic skin supports the horizontal, vertical, and dualselectlist styles only. For more information on using this tag in XML forms, see Creating Forms in Macromedia Flash in ColdFusion MX Developer's Guide.

Example

For a simple example of an XML form that uses a single cfformgroup tag, see cfform.

The following example shows how to use the cfformgroup tag to arrange elements on a Flash form. It creates an hdividedbox container that has a vbox container on each side. The left box has heading text and two radio buttons. The right box has heading text and three check boxes.

<h3>Simple cfformgroup Example</h3>
<cfform name="myform" height="450" width="500" format="Flash" >
   <cfformgroup type="hdividedbox" >
      <cfformgroup type="VBox">
         <cfformitem type="text" height="20">
            Pets:
         </cfformitem>
         <cfinput type="Radio" name="pets" label="Dogs" value="Dogs"
            checked>
         <cfinput type="Radio" name="pets" label="Cats" value="Cats">
      </cfformgroup>

      <cfformgroup type="VBox">
         <cfformitem type="text" height="20">
            Fruits:
         </cfformitem>
         <cfinput type = "Checkbox" name="chk1" Label="Apples"
            value="Apples">
         <cfinput type="Checkbox" name="chk2" Label="Bananas"
            value="Bananas">
         <cfinput type="Checkbox" name="chk3" Label="Pears"
            value="Pears">
      </cfformgroup>
   </cfformgroup>
</cfform>

The following more complex example shows more fully how you can use cfformgroup tags to arrange controls in a Flash form. It also shows many of the text formatting features that you can use in a text cfformgroup body. When you submit the form, the page dumps the contents of the Forms scope, to show you the submitted data.

<h2>cfformgroup Example</h2>
<cfif IsDefined("form.oncethrough")>
   <h3>The form submitted the following information to ColdFusion MX:</h3>
   <cfdump var="#form#"><br><br><br>
</cfif>

<h3>A Flash form using cfformgroup tags</h3>
<cfform name="myform" height="450" width="500" format="Flash">

<!--- The following formgroup shows how you can present formatted text. --->
   <cfformitem type="html">
      <b><font color="#FF0000" size="+4" face="serif">
      This form has two tabs, asking for the following:</font></b><br>
      <li>contact information</li>
      <li><i>preferences</i></li>
      <b>Try entering information on both tabs</b><br>
      Submit the form and see what ColdFusion gets in the Forms scope.</b><br>
      <a href="http://www.macromedia.com/" target="_blank">
      <font color="#0000FF"><u>
      This link displays the Macromedia home page in a new browser window
      </u></font></a><br>
      &nbsp;<br>
   </cfformitem>

<!--- Use a tabnavigator with two tabs for user input. --->
   <cfformgroup type="tabnavigator" height="220">
      <cfformgroup type="page" label="Contact Information">
         <!--- Align the first and last name fields horizontally --->
         <cfformgroup type="horizontal" label="Your Name">
            <cfinput type="text" required="Yes" name="firstName" label="First"
               value="" width="100"/>
            <cfinput type="text" required="Yes" name="lastName" label="Last"
               value="" width="100"/>
         </cfformgroup>
         <cfformitem type="html"><textformat indent="95"><font size="-2">
            Flash fills the email field in automatically. 
            You can replace any of the text.
            </font></textformat>
         </cfformitem>
         <!--- The bind attribute gets the field contents from the firstname
               and lastName fields as they get filled in. --->
         <cfinput type="text" name="email" label="email"
            bind="{firstName.text}.{lastName.text}@mm.com">
      
         <cfinput type="text" name="phone" validate="telephone" required="Yes"
            label="Phone Number">
      </cfformgroup>

      <cfformgroup type="page" label="Preferences">
         <cfformitem type="text" height="30">
            <b>Tell us your preferences</b>
         </cfformitem>
         <!--- Put the pet selectors to the left of the fruit selectors. --->
         <cfformgroup type="hbox">
         <!--- Group the pet selector box contents, aligned vertically. --->
            <cfformgroup type="vbox">
               <cfformitem type="text" height="20">
                  Pets:
               </cfformitem>
               <cfformgroup type="vertical">
                  <cfinput type="Radio" name="pets" label="Dogs" value="Dogs"
                     checked>
                  <cfinput type="Radio" name="pets" label="Cats" value="Cats">
               </cfformgroup>
            </cfformgroup>
         <!--- Group the fruit selector box contents, aligned vertically. --->
            <cfformgroup type="vbox">
               <cfformitem type="text" height="20">
                  Fruits:
               </cfformitem>
               <cfformgroup type="tile" width="200" label="Tile box">
                  <--- Flash requires unique names for all controls --->
                  <cfinput type = "Checkbox" name="chk1" Label="Apples"
                     value="Apples">
                  <cfinput type="Checkbox" name="chk2" Label="Bananas"
                     value="Bananas">
                  <cfinput type="Checkbox" name="chk3" Label="Pears"
                     value="Pears">
                  <cfinput type="Checkbox" name="chk4" Label="Oranges"
                     value="Oranges">
                  <cfinput type="Checkbox" name="chk5" Label="Grapes"
                     value="Grapes">
                  <cfinput type="Checkbox" name="chk6" Label="Cumquats"
                     value="Cumquats">
               </cfformgroup>
            </cfformgroup>
         </cfformgroup>
      </cfformgroup>
   </cfformgroup>

   <cfformgroup type="horizontal">
      <cfinput type = "submit" name="submit" width="100" value = "Show Results">
      <cfinput type = "reset" name="reset" width="100" value = "Reset Fields">
      <cfinput type = "hidden" name="oncethrough" value = "Yes">
   </cfformgroup>
</cfform>

View comments in LiveDocs