you could also try using the disable informal parameter for some HTML input elements.
something like this in the .html <input jwcid="SecondOwnFirstName" name="Text1" /> and this in the .page <component id="SecondOwnFirstName" type="TextField"> <binding name="value" value="secOwnFirstName" /> <binding name="disabled" value="isViewPage" /> </component> the isViewPage evaluates to true or false and makes the input element disabled. of course this makes for a server roundtrip. On 8/17/06, Matt Brock <[EMAIL PROTECTED]> wrote:
Will Norris wrote: > > I remember seeing a component in some other framework > that would allow you to have a form that could be toggled to a read- > only state. This is not just making the input boxes disabled, but > rather converting them to be normal text output (so you don't have to > make an entirely separate page to have someone review their form > inputs). If you want the toggle to be performed without refreshing the client, you'll have to do it in Javascript. If, on the other hand, you want a conditional render on some criteria, there are a couple of ways to do this. The first, easiest, but most cumbersome way would be to wrap each form value in an @If component, where condition=true would render a @TextField, while a condition=false would render an Insert. For example: <span jwcid="@If" condition="ognl: registeredUser == true"> <input jwcid="@TextField" value="ognl: firstName" /> </span> <span jwcid="@Else"> <span jwcid="@Insert" value="ognl: firstName" /> </span> This would require you to wrap each and every field with an if/else, which could be cumbersome on a page with a lot of different fields. The second way to do this would be to create your own TextField component that takes whatever condition you're testing for and renders either a form field, or just the form value. It would look something like this: ToggleField.java: --- public abstract class ToggleField extends BaseComponent { /* * Note, you can define your parameters here using the @Parameter annotation, or in the JWC file. * I prefer the JWC file. @Parameter public abstract Boolean getCondition(); @Parameter public abstract String getValue(); */ } ToggleField.jwc: --- <?xml version="1.0"?> <!DOCTYPE component-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd"> <component-specification class="ToggleField" allow-body="yes"> <parameter name="condition" required="yes" /> <parameter name="value" required="yes" /> </component-specification> ToggleField.html: --- <span jwcid="@If" condition="ognl:condition"> <input jwcid="@TextField" value="ognl:value" /> </span> <span jwcid="@Else"> <span jwcid="@Insert" value="ognl:value" /> </span> Usage (inline in an HTML file) --- <span jwcid="@ToggleField" condition="ognl: registeredUser == true" value="ognl: firstName" /> Please forgive any syntactical errors, but that's the basic jist. -- View this message in context: http://www.nabble.com/toggle-form-display-tf2088143.html#a5843782 Sent from the Tapestry - User forum at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Thanks, Karthik