What does the data look like that "formatPerference" return from your user bean? If it is a list or array -- it uses the items from the list/array elements to match to the names of the select items. So if you have the items of "red,green,blue" -- the list/array will select by matching the item names. Therefore a list/array with the values of "red,blue" will select those options. The select option item value matches an element in the the list or array -- it is like saying "true".

If "formatPeference" from the user returns a struct, then it uses the key of struct to check against a boolean. Using the example above to have "red" and "blue" selected -- the struct would have to look have booleans like this:

red = true
green = false
blue = true

To answer your question:
But, when I tried to output the value of attribute.value before that
line and I get "${output.value}", which I'm guessing gets replaced
some other place with the proper value.
When you use the "items" attribute of the select tag, it uses the "options" tag in the form library. We use the "option" (not plural) to generate a template for the "options (plural) and that is why you are seeing the placeholder "${output.value}" in which the "options" tag uses a Replace() on the template. This is for performance -- calling "option" (not plural) in a loop is about 10 times slower on large select lists. Check out the "options" (plural) tag if you want to dig into that code.

Best,
.Peter


Sumit Verma said the following on 10/01/10 21:22:
Hi Guys,

It looks like the form:select tag does not select the value defined in
the binding. Not sure if I'm missing something here. Here is my code:

<cfset variables.formatPreferenceOptions = {html="HTML", text="Text"} /
<form:form actionEvent="" bind="users">
        <form:select path="formatPreference"
items="#variables.formatPreferenceOptions#">
                <form:option value="" label="Select Format Preference" />
        </form:select>
</form:form>

I see that the selected attribute is set on option.cfm in line 76.
        <cfif ListFindNoCase(attributes.checkValue, attributes.value)>
                <cfset setAttribute("selected", "selected") />
        <cfelse>
                <cfset setAttributeIfDefinedAndTrue("selected", "selected") />
        </cfif>

But, when I tried to output the value of attribute.value before that
line and I get "${output.value}", which I'm guessing gets replaced
some other place with the proper value.

As always, thanks in advance for the help!
Sumit

-- 
You received this message because you are subscribed to Mach-II for CFML list.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/mach-ii-for-coldfusion?hl=en
SVN: http://greatbiztoolsllc.svn.cvsdude.com/mach-ii/
Wiki / Documentation / Tickets: 
http://greatbiztoolsllc.trac.cvsdude.com/mach-ii/

Reply via email to