Já que no post anterior falei do novo controlo FileUpload (que apenas automatiza o processo de atribuição do tipo de conteúdo do formulário), acho que vou aproveitar e apresentar também um exemplo simples relacionado com o novo controlo HiddenField. O objectivo deste controlo é simplificar a utilização de campos escondidos. Os programadores de Asp.Net 1.XX já se habituaram a utilizar o campo HtmlInputHidden sempre que precisam de utilizar campos escondidos.Contudo, este controlo possui um evento interessante: ValueChanged. Este evento é gerado sempre que o valor do controlo é modificado. O código seguinte apresenta um exemplo muito simples do código necessário para utilizar este controlo (note-se que o evento é gerado quando o valor do campo é modificado no lado cliente!):
<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
void ProcessValueChanged( object sender, EventArgs args )
{
info.Text = hidden.Value;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function Change()
{
var docID = "<%= hidden.ClientID %>";
var txtID = "<%= txt.ClientID %>"
document.getElementById( docID ).value = document.getElementById( txtID ).value;
alert( "Modificado" );
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h3>Utilização do controlo HiddenField</h3>
Introduza o texto que deve ser armazenado no campo escondido:<asp:TextBox runat="server" ID="txt" />
<asp:Button runat="server" ID="bt" Text="Modificar" OnClientClick="Change()" />
<asp:HiddenField runat="server" ID="hidden" OnValueChanged="ProcessValueChanged" /><br />
<asp:Label runat="server" ID="info" />
</form>
</body>
</html>
posted on Sunday, March 20, 2005 5:54 PM