Error: Validation failed for one or more entities

Si tienes este error al guardar una entidad en Entity FrameworkValidation failed for one or more entities. See ‘EntityValidationErrors’ property for more details“, es posible que te vuelvas loco buscando entre las propiedades de la excepción, cuál es el verdadero problema.

Para ello podemos utilizar el inspector rápido de Visual Studio (Shift + F9) y poner lo siguiente:

((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors

Así veremos el detalle del error que estamos viendo, como podemos ver en la imágen:

excepcion-entity-validation-errors

 

Como añadir transparencia por CSS en mi web

La transparencia es algo que no se trata igual en todos los navegadores, por ello nos será muy útil esta clase de CSS, que está preparada para funcionar con los navegadores más actuales, sin meternos con los viejos internet explorer 7 y más atrás.

Pondremos en nuestra hoja de estilos .css la siguiente clase que luego aplicaremos en nuestra aplicación web.

.transparencia {
opacity: .25;
-moz-opacity: .25;
filter:alpha(opacity=25);
}

El navegador sabrá interpretar cuál es su propiedad que determina la transparencia y la aplicará sobre el elemento en la que utilicemos esta clase.

En principio, debería de funcionar sin problemas en las versiones nuevas de Internet Explorer, en Chrome, en Firefox y en Safari.

 

Formato de solicitud no reconocido para la dirección URL, finaliza de manera inesperada….

Hemos creado un servicio web asmx en .NET y al probarlo en local funciona perfectamente. Vemos las definiciones los métodos, podemos hacer llamas a los mismos etc. (maravilloso!!)

Ahora lo subimos a un servidor en internet y nos aparecen las definiciones pero no podemos hacer llamadas a los métodos y nos devuelve el siguiente mensaje de error:
“Formato de solicitud no reconocido para la dirección URL, finaliza de manera inesperada xxxxx”

¿Porque nos aparece este problema?

  • Bueno pues es porque no hemos definido en el web config  los protocolos que va a usar nuestro servicio web y por defecto en IIS vienen desactivados, cosa que no ocurre cuando lo ejecutamos de manera local.

¿Como solucionamos este problema?

  • Añadiendo al web config las siguientes líneas dentro de la sección <system.web>

<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>

Con esto ya podríamos consumir nuestro servicio web asmx de .NET 

 

 

 

Mostrar un CollapsiblePanel expandido al inicio

aps.net collapsible panel ajax

El control CollapsiblePanel es un control AJAX que permite expandir y contraer paneles con un efecto “slide”  en nuestras páginas de ASP.NET.

Tal vez nos interese que al iniciar nuestra aplicación Web, este panel aparezca ya expandido. Esto lo podríamos hacer por código, pero el control CollapsiblePanel tiene una propiedad que si se la inicializamos a false, nos aparecerá ya el control expandido.

Esta propiedad es Collapse=”False” que la pondríamos más o menos como viene en el ejemplo acontinuación:

<cc1:CollapsiblePanelExtender ID=”CollapsiblePanelExtender1″ runat=”server” TargetControlID=”pBody” CollapseControlID=”pHeader” ExpandControlID=”pHeader”                Collapsed=”false” TextLabelID=”lblText” CollapsedText=”Control sin expandir” ExpandedText=”Texto Expandido”   CollapsedSize=”0″ ImageControlID=”ImgBttnTitle” CollapsedImage=”../images/flecha-abajo.png” ExpandedImage=”../images/flecha-arriba.png” SuppressPostBack=”true”></cc1:CollapsiblePanelExtender>


Como hacer comentarios en ASP.NET C#

Asp  .NEt logtoipo

Si necesitas comentar algún código mientras estás utilizando ASP.NET en el código HTML, puedes hacerlo con la siguiente sintáxis:

<%– Código a comentar –%> 

Todo lo que pongas entre los símbolos <%– y –%> será obviado por el servidor, incluso si es multilínea.

Una cosa muy cómoda en Visual Studio, es seleccionar o ponerte en la línea que quieres comentar y luego utilizar esta combinación de teclas Cntrl + e y seguidamente Cntrl + c, de esta manera tu código se comentará completamente sólo.

También existe la forma de descomentar automáticamente y sería con esta combinación des teclas Cntrl + e y seguidamente Cntrl + u.

Ejemplo:

</html>
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”><html xmlns=”http://www.w3.org/1999/xhtml” >
<head runat=”server”>
<title>Untitled Page</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>

        <%- -<asp:Label ID=”texto” runat=”server”></asp:Label>- -%>

<asp:TextBox ID=”texto” runat=”server”></asp:TextBox>
</div>
</form>
</body>
</html>

 

Como utilizar la imagen destacada de WordPress – Thumbnail

wordpress logo logotipo con mantenimiento

Si quieres utilizar thumnails o la imagen destacada en WordPress, en las entradas de tu tema, sólo tienes que seguir este sencillo tutorial.

  1. Editar el archivo functions.php, bien de forma manual o bien desde el editor de apariencia, seleccionando el archivo functions.
  2. Añadir las siguientes líneas dnetro del archivo functions.php
    • /*La primera línea le dice a WordPress que habilite las imágenes destacadas, si existe la función en nuestro WordPress. La segunda le pasa el tamaño por defecto para esas imágenes.*/
      if ( function_exists( 'add_theme_support' ) )
      add_theme_support( 'post-thumbnails' );
      set_post_thumbnail_size(150, 150);
  3. Ahora editaremos el fichero de las entradas de nuestra página principal, suele ser el archivo index.php o a veces loop.php dependiendo de tu tema.
  4. Añadiremos el siguiente código donde queramos mostrar nuestra imágen destacada o thumbnail
    • <?php the_post_thumbnail();?>

Con esto ya tendríamos puesta nuestra imágen donde la necesitemos.

Unas opciones muy interesantes son el tamaño por defecto del thumbnail para que no nos deformen las imágenes. Simplemente tenemos que cambiar el código del paso 4 por estos otros.
the_post_thumbnail('thumbnail'); // Thumbnail (default 150px x 150px max)
the_post_thumbnail('medium'); // Medium resolution (default 300px x 300px max)
the_post_thumbnail('large'); // Large resolution (default 640px x 640px max)
the_post_thumbnail( array(100,100) ); // Otras resoluciones

Una buena opción es utilizar the_post_thumbnail() con the_excerpt() para obtener post sólamente con la imágen destacada en el index.php y otra imágen dentro del post, en el page.php

Poner asteriscos en un campo password html

Logotipo una pagina web

Este post es para los que se estan iniciando en el mundo web o que nunca han echo un formulario de usuario por ejemplo. Hace poco me han preguntado cuál era la “técnica” para que cuando se escribe una contraseña en un campo de html salgan asteríscos en lugar del password escrito.
La solución es muy sencilla. Al declarar el campo de tipo input debemos de indicar que también es de tipo password. Algo así:

<label>Contraseña:<label />
<input TYPE="password" name="password" type="text" id="password" size="30" />

Como utilizar una consulta PHP 2 veces



En PHP es posible que necesitemos usar una consulta 2 veces. Un ejemplo práctico de ésto, sería rellenar 2 combos con la misma consulta, sin tener que copiar los combos. La solución sería que tras recorrer el array de la consulta para cargar el primer combo, volver a poner el puntero de la consulta al primer registro de ésta. Esto se hace con “mysql_data_seek

Ejemplo:

$conexion=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
if(!$conexion)
{
    echo "No se pudo conectar a la DB";
}else
{
	mysql_select_db(DB_NAME) or die ("No se puedo conectar con la base de datos");

	$resultado=mysql_query("SELECT equipo FROM equipos
                                WHERE categoria='PrimeraCategoria'",$conexion);

	if(!$resultado)
	{
		echo "La consulta no funciono";
	}else
        {
                //CARGO EL PRIMER COMBO
                echo '<label>Equipo Local:</label>';
                echo '<select style="width: 225px;" name="equipoLocal">';
                while ($row=mysql_fetch_row($resultado))
                {
                      echo'<option value="'.$row[0].'">'.$row[0].'</option>';
                }
                echo '</select>';

                //Devuelvo al array de la consulta a la posición de partida para volverlo a recorrer
               if( !mysql_data_seek($resultado, 0) )
               {
                      die( "No se pudo regresar al primer resultado" );
               }else
               {      //CARGO EL SEGUNDO COMBO
                      echo '<label>Equipo Visitante:</label><br>';
                      echo '<select name= "equipoVisitante" style="width: 225px">';
                      while ($row=mysql_fetch_row($resultado))
                      {
                            echo'<OPTION VALUE="'.$row[0].'">'.$row[0].'</OPTION>';
                      }
                      echo '</select>';
               }
       }
}

Error al cargar el diseñador en Visual Studio

Visual studio logo, logotipo de microsoft

A veces cuando te pasan un proyecto para Visual Studio o lo descargas de internet, suele darnos un poco la lata. El error más común en este tipo de situaciones (salvo que sea de escritura de código), suele ser el cargar el diseñador de los forms y nos dan mensajes como estos:

No se puede mostrar el diseñador para este archivo porque ninguna de las clases que contiene se pueden diseñar.El diseñador inspeccionó las siguientes clases en el archivo: Principal --- La clase base 'System.Object' no se puede diseñar. GenExcell --- La clase base 'System.Object' no se puede diseñar. Form1 --- La clase base 'System.Object' no se puede diseñar.

Este error es fácilmente solucionable compliando el proyecto. Si a la hora de compliar nos aparece algún error (suelen ser problemas de código) lo tendremos que solucionar primero. Y en el caso peor de que nuestro error esté en algún componente del form, y al no poder verlo en el diseñador no poder modificarlo, recordemos que todo en Visual Studio tiene su código y podremos ir a la clase del formulario.designer y por ejemplo eliminar el componente que nos da la lata.

Como hacer un report en columnas en Crystal Reports

Si necesitas sacar el detalle de un report, en Crystal Reports, en columnas para tener el detalle expandido horizontalmente en lugar de verticalmente, puedes hacerlo de la siguiente manera.

Vas al “Section Expert” haciendo click derecho en la parte de secciones de nuestro report. Ahí marcamos la opción “Format with Multiple Columns“, para que nos salga una pestaña arriba que pone “Layout” como vemos en la siguiente imagen.

Crystal reports imprimir en columnas

Despues en la pestaña de Layout ya seleccionamos el tamaño de cada columna “Detail Size” y el tamaño entre columnas “Gap Between Details“.

Crystal Reports seccion expert impresion en columnas

Con esto ya tendremos nuestro informe en columnas.