<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- $Id$ --> 
<html>
<head>
<title>Hidden</title>
<link rel="stylesheet" type="text/css" href="Tapestry.css" title="style">
</head>

<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
 <tr>
  <td align="left"><A href="GenericLink.html"><IMG alt=GenericLink src="common-images/prev.png"></a></td>  
  <td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></a></td>  
  <td align="right"><A href="Image.html"><IMG alt=Image src="common-images/next.png"></a></td>  
 <tr>
 <tr>
  <td colspan="3"><hr></td>  
 </tr>
 <tr>
  <td colspan="3">
   <table border="0" cellpadding="4" cellspacing="4" width="100%">

<tr valign="top">
 <td>
  <table>
	 <tr>
	  <td><font size="+2"><b>Hidden</b></font></td>
	 </tr>
	 <tr>
	  <td>
		 <A href="../api/org/apache/tapestry/form/Hidden.html">
		 org.apache.tapestry.form.Hidden</a>
		</td>
	 </tr>
  </table>
 </td>
 <td>
  <table align="right" valign="middle" bgcolor="#c0c0c0" cellpadding="8">
	 <tr>
	  <td>Non Visual Component</td>
	 </tr>
  </table>
 </td>
</tr>

<tr valign="center">
 <td colspan="2">&nbsp;</td>
</tr>

<tr>
 <td colspan="2">
  <b>Description</b>
	<br>
  Adds a hidden HTML &lt;input type="hidden"&gt; field to a <A href="Form.html">
  Form</a>. This is often used to 
            synchronize data when the
  form is submitted with values known when the page was rendered. 
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>See Also</b>
	<br>
	<A href="Form.html">Form</a>, 
	<A href="ListEdit.html">ListEdit</a> 
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>Parameters</b>
	<br>
  <table border="1" cellpadding="4" cellspacing="4" class="parameters">
  <tr> 
    <th>Name</th>
    <th>Type</th>
	  <th>Direction</th>
    <th>Required</th> 
    <th>Default</th>
    <th>Description</th>
  </tr>
  <tr>
    <td>value</td>
    <td>Object</td>
    <td>in/out</td>
   	<td>yes</td>
		<td>&nbsp;</td>
		<td>The value to be stored in the the hidden field. The parameter is read 
    when the HTML response is generated, and then written when the form is 
    submitted. A <A href="../api/org/apache/tapestry/util/io/DataSqueezer.html"><tt>
    DataSqueezer</tt></a> is used to convert the value between an arbitrary type 
    and a String. 
    </td>
	</tr>
  <tr>
    <td>id</td>
    <td>Object</td>
    <td>in</td>
   	<td>no</td>
	<td>undefined in HTML presentation.</td>
	<td>ID parameter of HTML hidden object. The parameter is read when 
	the HTML response is generated and if there is a specific value the component generate parameter id with passed value in its HTML presentation.</td>
	</tr>
  <tr>
    <td>listener</td>
    <td><A href="../api/org/apache/tapestry/IActionListener.html">
     <tt>IActionListener</tt></a>
    </td>
    <td>in</td>
   	<td>no</td>
		<td>&nbsp;</td>
		<td>
    A listener that is informed after the value parameter is updated. This 
    allows the data set operated on by the rest of the 
    <A href="Form.html">Form</a> components to be synchronized to the value 
    stored in the hidden field. 
    <p>
    A typical use is to encode the primary key of an entity as a Hidden; when 
    the form is submitted, the Hidden's listener re-reads the corresponding 
    entity from the database.
    </td>
	</tr>
  <tr>
    <td>encode</td>
    <td>boolean</td>
    <td>in</td>
   	<td>no</td>
		<td>true</td>
		<td>
    If true (the default) a 
    <a href="../api/org/apache/tapestry/util/io/DataSqueezer.html"><tt>DataSqueezer</tt></a>
    is used to transform the value Object into the HTML value string, and (on submit)
    to convert the string back into an Object.
    
    <p>
    If false, then the value must be a String.  This is most likely used
    when the hidden field is used to communicate with client-side logic in JavaScript
    (which is not able to interpret even Strings encoded by DataSqueezer).  If you find
    yourself getting strange errors during the form rewind it could easily be
    Tapestry trying to interpret a value you've set via Javascript. 
    </td>
	</tr>
	</table>
  <P>Body: <STRONG>removed</STRONG><BR>
  Informal parameters: <STRONG>forbidden</STRONG><br>
  Reserved parameters: "name"
  </P>    
 </td>
</tr>

<tr>
 <td colspan="2">
  <b>Examples</b>
	<p>
  This example is under construction.
  </p>      
  
 </td></tr>

</table>
</td></tr>
<tr>
 <td colspan="3"><hr></td>  
</tr>
<tr>
 <td align="left"><A href="GenericLink.html"><IMG alt=GenericLink src="common-images/prev.png"></a></td>  
 <td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></a></td>  
 <td align="right"><A href="Image.html"><IMG alt=Image src="common-images/next.png"></a></td>  
</tr>
</table>

</body>
</html>