martes, 27 de diciembre de 2011

ASPxGridView y FocusedRowChanged


Hola, en primer lugar felicitaros la nvidad a todo el mundo y que seais muy muy felices.
Bueno aquí os dejo un código del que estoy bastante orgulloso ya que he estado dos días intentando hacerlo de una forma eficiente y al final lo he conseguido:
Se trata de como actualizar un aspxgridview al seleccionar la fila de otro aspxgridview.
En mi ejemplo tenía en uno personal y en otro permisos de ese personal, al seleccionar el personal quería que me aparecieran en el otro aspxgridview los permisos que tienen asignados.
Este es el código de los elementos:

        <dx:ASPxGridView ID="ASPxGridView1" runat="server" ClientIDMode="AutoID" OnLoad="cargaPermisosPersonal"   >
             <ClientSideEvents FocusedRowChanged="function(s, e) { ASPxGridView2.PerformCallback();  }" />
        </dx:ASPxGridView>


           <dx:ASPxGridView ID="ASPxGridView2" runat="server" OnAfterPerformCallback="cargaPermisosPersonal">
               <SettingsText EmptyDataRow="No hay ningún permiso asignado" />
           </dx:ASPxGridView>


La función cargaPermisosPersonal no la pongo porque es bastante larga, pero lo que hace es obtener el identificador del personal y buscar en la base de datos sus permisos, además de otras funciones que no tienen nada que ver con esta entrada.

Para explicar un poco lo que hace, con OnLoad cargamos la primera vez los permisos del primer personal, que es el que se selecciona la primera vez, y luego con clientsideevents focusedrowchanged lo que hacemos es actualizar el  aspxgridview2, que como podeis ver con onafterperformcallback llamamos a la función para cargar los permisos del nuevo personal seleccionado.

Muchas gracias y espero que haya sido de ayuda.

1 comentario:

  1. hola juan ramon como estas soy luis de peru, mi amigo tengo un problema con el aspxgridview, puedes ayudarme porfavor? lo que pasa es que deseo un aspxgridview que muestre los datos de usuarios, y al dar click en una fila, ver sus datos en algunos textbox, porfavor ayudame con ello mil gracias

    ResponderEliminar