lunes, 30 de enero de 2012

Otras páginas para desarrollo web

Bueno aquí dejo un par de páginas interesantes para desarrolladores de páginas web:

Para saber el código de algún color: http://html-color-codes.info/codigos-de-colores-hexadecimales/
Para diseñar botones y obtener su código: http://webarti.com/best-CSS3-button-maker/

Otra página para crear web

Bueno aquí os dejo otra página que viene muy bien para tener presentes todos los atributos que tienen los elementos html.

http://www.w3schools.com/

martes, 17 de enero de 2012

Como crear tu web

Recomiendo esta página para comenzar a crear una página web ya que a mi me está sirviendo de mucha ayuda.

www.comocreartuweb.com

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.

viernes, 23 de diciembre de 2011

location.reload(true)

Si en algún botón de los elementos de visual studio queréis recargar la página con esta función lo podéis hacer, aquí vemoos un ejemplo:
<dx:ASPxGridView ID="ASPxGridView1" runat="server" ClientIDMode="AutoID" OnFocusedRowChanged="cargaPermisosPersonal"  >
             <ClientSideEvents RowClick="function(s, e) { ASPxGridView2.PerformCallback();location.reload(false);  }" />
        </dx:ASPxGridView>

Gracias y espero que sea de ayuda.

miércoles, 21 de diciembre de 2011

AutoPostBack

A menudo se quiere programar un botón o un checkbox para que cuando se modifique aparezcan nuevos elementos en una ventana de un programa. Con Visual Studio 2010, incluso teniendo bien programada la función no funciona. Probad a cambiar el valor del AutoPostBack a true y guardar la página. Próximamente publicaré un artículo completo sobre este atributo.

Session caducada

He solucionado un error que tenía referente a las sesiones en visual studio.

Las sessiones en visual studio tienen un tiempo de expiración, que se configura con la variable timeout. Pues al pasar este tiempo sin realizar ninguna acción aparece un error de "Referencia a objeto no establecida como instancia de un objeto." en la línea usuarioConexion = Session["stringUsuario"].ToString();

La forma que yo he tenido de solucionarlo en poner en todos los Page_Load este código:
 if (Session["stringUsuario"] == null)
                    Response.Redirect("~/portadaPrincipal.aspx");

Además en mi aplicación, el portadaPrincipal redirige a un index que tiene dos frames, para poder eliminar estos frames y dejar la pantalla limpia utilizo este javascript en el portadaPrincipal

<script type="text/javascript">
    function quitarFrame() {
        if (self.parent.frames.length != 0)
            self.parent.location = document.location.href;
    }
    quitarFrame()
</script>

Espero os sirva de ayuda.