<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Desarrollosweb.net &#187; Ext.Form</title>
	<atom:link href="http://www.desarrollosweb.net/tag/extform/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.desarrollosweb.net</link>
	<description>Desarrollo de webs y aplicaciones</description>
	<lastBuildDate>Fri, 26 Mar 2010 10:53:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Cookbook ExtJS: Cargar un registro de un GridPanel en un FormPanel</title>
		<link>http://www.desarrollosweb.net/2008/12/03/cookbook-extjs-cargar-un-registro-de-un-gridpanel-en-un-formpanel/</link>
		<comments>http://www.desarrollosweb.net/2008/12/03/cookbook-extjs-cargar-un-registro-de-un-gridpanel-en-un-formpanel/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 09:40:14 +0000</pubDate>
		<dc:creator>Javier Caride</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[Ext.Form]]></category>
		<category><![CDATA[Ext.GridPanel]]></category>
		<category><![CDATA[extjs]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.desarrollosweb.net/?p=51</guid>
		<description><![CDATA[¿Como hacemos para cargar los datos de un registro de un grid en un formulario? Bien, hay diversas opciones (siempre a gusto del programador) así que aquí vamos a explicar una de ellas: asociar el evento &#8216;rowdblclick&#8217; (doble click en una fila) a un handler que cargue el formulario con los datos del registro. GestorCuentas.movimientosGrid.on('rowdblclick',function( [...]]]></description>
			<content:encoded><![CDATA[<p>¿Como hacemos para cargar los datos de un registro de un grid en un formulario? Bien, hay diversas opciones (siempre a gusto del programador) así que aquí vamos a explicar una de ellas: asociar el evento &#8216;rowdblclick&#8217; (doble click en una fila) a un handler que cargue el formulario con los datos del registro.</p>
<pre name="code" class="javascript">
GestorCuentas.movimientosGrid.on('rowdblclick',function( grid, row, evt) {
        var movRecord = GestorCuentas.movimientosDataStore.getAt(row);
        GestorCuentas.movForm.getForm().load({
            url : 'cargaMovimiento.php',
            method: 'POST',
            params: {
                mov_id: movRecord.data.mov_id
            },
            waitMsg : 'Espere por favor'
        });
    });
</pre>
<p>En el API de ExtJS podemos comprobar que cuando asignamos una función al evento &#8216;rowdbclick&#8217; vamos a recibir tres parámetros: el grid que ha generado el evento, el índice del registro dentro del store y un objeto con datos adicionales del evento</p>
<p>Para quedarnos con el registro, sólo tenemos que solicitarle al store del grid que nos devuelva aquel cuyo índice hemos recibido por parámetro</p>
<pre name="code" class="javascript">
var movRecord = GestorCuentas.movimientosDataStore.getAt(row);
</pre>
<p>Ahora en movRecord tendremos el registro y podremos acceder a sus datos para quedarnos con el identificador del registro. Fijáos que en la definición del record del grid hemos incluído la Primary Key del registro en base de datos, aunque no lo estemos mostrando en el propio grid</p>
<p>Fijáos que el formulario que vamos a cargar tiene asignado un reader, de forma que podemos llamar al método load() del mismo para que automáticamente cargue los datos. Obviamente hay que indicarle que registro se va a cargar por lo que le pasamos como parámetro el mov_id del registro que hemos pedido al store</p>
<p>La instancia del formulario se la pedimos al FormPanel mediante el método getForm(). Esto nos devuelve un objeto Ext.form.BasicForm. Este método tiene un método load() al que le pasamos la configuración necesaria para hacer la carga</p>
<pre name="code" class="javascript">
    GestorCuentas.movForm.getForm().load({
            url : 'cargaMovimiento.php',
            method: 'POST',
            params: {
                // OJO, los datos del registro están en movRecord.data y no directamente en movRecord como podría pensarse
                mov_id: movRecord.data.mov_id
            },
            waitMsg : 'Espere por favor'
        });
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.desarrollosweb.net/2008/12/03/cookbook-extjs-cargar-un-registro-de-un-gridpanel-en-un-formpanel/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
