Adobe ColdFusion 8

cfformgroup

Description

Creates a container control for multiple form controls. Used in the cfform tag body of Adobe 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|no"
    visible = "yes|no"
    onChange = "ActionScript expression"
    tooltip = "text"
    id = "unique identifier">
    ...ColdFusion forms controls...
</cfformgroup>

OR

<cfformgroup 
    type = "repeater"
    query = "query object"
    maxrows = "integer">
    startrow = "row number"
    ...ColdFusion forms controls
</cfformgroup>

Note: You can specify this tag's attributes in an attributeCollection attribute whose value is a structure. Specify the structure name in the attributeCollection attribute and use the tag's attribute names as structure keys.

See also

cfapplet, cfcalendar, cfform, cfformitem, cfgrid, cfinput, cfselect, cfslider, cftextarea, cftree, "Using the cfformgroup tag to structure forms" and "Using cfformgroup tags" in the ColdFusion 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.

Note: Attributes that are not marked as supported in XML are not handled by the skins provided with ColdFusion. 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 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, because the child controls do 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 by 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.

enabled

Optional;

Flash

yes

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

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.

id

Optional;

Flash

 

Unique identifier for the form group.

When using the tabnavigator or accordion type, you must specify the id attribute to reference the controls through custom ActionScript.

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.

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.

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.

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.

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).

style

Optional;

Flash and XML

 

Flash: a Flash style specification in CSS format. For detailed information on specifying Flash styles, see "Creating Forms in Flash" in the ColdFusion Developer's Guide.

XML: an inline CSS style specification.

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.

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.

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.

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 Flash" in the ColdFusion 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 Flash" in the ColdFusion 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:</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..com/" target="_blank">
        <font color="#0000FF"><u>
        This link displays the 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>