Editar registros dentro del GridView

La historia empieza hacia ..

Cierto día estaba trabajando con el control GridView el cual lo utilizo para mostrar información hasta que llego el momento de editar esos registros lo primero que se me vino a la mente fue armar una nueva pagina donde pudiera editar cada uno de ellos pero reaccione y dije es mucho en rollo ademas el control GridView proporciona ciertas columnas para poder manipular la información.

Lo primero que tenemos que hacer es agregar una columna de de tipo CommandField solo tenemos que seleccionar el el control GridView en la parte superior del lado derecho aparece una flecha ,que al seleccionar nos desplegara un menu de opciones elegimos la opción de Editar Columnas

Fig1. Edicion de Columnas

Fig1. Edicion de Columnas

Habilitando la opción tenemos que buscar en la lista de campos disponibles   CommandField  y en sus opciones seleccionar Editar,Actualizar,Cancelar por ultimo damos agregar y en la parte de campos nos mostrara las columnas de nuestro  GridView

Fig.2 Definición de columnas

Fig.2 Definición de columnas

Al agregar esta columna lo primero que tendremos que hacer es agregar los siguientes métodos a nuestro control   GridView :

  • RowEditing
  • RowCancelingEdit
  • RowUpdating

El método RowEditing   se produce cuando se hace clic en el botón Editar de una fila y en code-behind quedaría de esta manera :

protected void gvPrefijos_RowEditing(object sender, GridViewEditEventArgs e)
{
  this.gvPrefijos.EditIndex = e.NewEditIndex;

  DataTable dt = new DataTable();
  dt = (DataTable)ViewState["Data"];

  this.gvPrefijos.DataSource = dt;
  this.gvPrefijos.DataBind();

}

El método RowCancelingEdit se produce cuando se hace clic en el botón Cancelar de una fila en modo de edición, pero antes de que la fila salga del modo de edición y en code-behind quedaría de esta manera :

//
protected void gvPrefijos_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
    this.gvPrefijos.EditIndex = -1;
    CargaPrefijos();
}
//

Finalmente en el metodo RowUpdating se produce cuando se hace clic en el botón Actualizar de una fila y en code-behind quedaría de esta manera :

protected void gvPrefijos_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
     int resultInt = 0;
     bool resultado = new Prefijos_CN().ModificarPrefijos(new Prefijos_CN
          {
            IdPrefijo = int.TryParse(this.gvPrefijos.DataKeys[e.RowIndex].Values["IdPrefijo"].ToString(), out resultInt) ? resultInt : 0,
            Nombre = ((TextBox)this.gvPrefijos.Rows[e.RowIndex].Cells[0].Controls[0]).Text,
            Descripcion = ((TextBox)this.gvPrefijos.Rows[e.RowIndex].Cells[1].Controls[0]).Text
         });

     if (resultado)
     {
        gvPrefijos.EditIndex = -1;
        CargaPrefijos();
     }
    else
    {

    }
}

En nuestro control GridView nos debe de quedar de la siguiente manera(Codigo) ..

<asp:GridView runat="server" ID="gvPrefijos" AutoGenerateColumns="False" DataKeyNames="IdPrefijo" onrowediting="gvPrefijos_RowEditing" onrowupdating="gvPrefijos_RowUpdating" onrowcancelingedit="gvPrefijos_RowCancelingEdit"></pre>
<Columns>
<asp:BoundField DataField="Nombre" HeaderText="Nombre" />
<asp:BoundField DataField="Descripcion" HeaderText="Descripcion" />
<asp:CommandField ShowEditButton="True"/>
</Columns>
</asp:GridView>

Finalmente al editar los registros de nuestro control GridView nos debe de quedar de la siguiente manera(Diseño) ..

Fig.3 Edición de registros

Fig.3 Edición de registros

 

Saludos...

Definiendo el tamaño de una imagen

Definiendo el tamaño de una imagen

Esta vez les hablare con algo que me tope en el camino del desarrollo de aplicaciones web..

Resulta que estaba desarrollando una aplicación y para ello mostraba una imágenes en un formulario  todo marcha bien hasta me empece a dar cuenta que no todas las imágenes que mostraba  eran del mismo tamaño lo primero que se me ocurrio, un tamaño por default por lo que intente esto

<table>
<tr>
<td>
<asp:Image runat="server" ID="imgPortada" AlternateText="Imagen no disponible" Width="250px" Height="250px" />
</td>
</tr>
</table>

Para la parte del código cree una forma por default:

//
private void CargaPortada()
{
  this.imgPortada.ImageUrl = ResolveUrl("~/Carperta/Imagen");
}
//

Pero después me di cuenta que hacer lo anterior resultaba un poco inadecuado ya que las imágenes perdían legibilidad y varias de ellas no tenían el mismo tamaño por lo que arme unas lineas código para resolverlo:

//
private void CargaPortada()
    {
        try
        {
            this.lblMensaje.Text = "";

            this.imgPortada.ImageUrl = ResolveUrl("~/Carperta/Imagen");
            System.Drawing.Image objImagen = System.Drawing.Image.FromFile(Server.MapPath("~/Carperta/Imagen"));

            this.imgPortada.Width = objImagen.Height;
            this.imgPortada.Height = objImagen.Width;
            
            objImagen.Dispose();
            objImagen = null;
        }
        catch(Exception e)
        {
            this.lblMensaje.Text = "Imagen no disponible.";
        }
    }
//

Entonces lo que hice fue una instancia de la clase System.Drawing.Image a la cual le asigno la ruta física de la imagen y por ultimo a mi control de asp le defino los valores del Width y Height del objeto

Por ultimo el control de asp lo definimos de esta manera sin Width y Height

<asp:Image runat="server" ID="imgPortada" AlternateText="Imagen no disponible" />

Saludos!!

Poco 2012 – Mucho 2013

Y no podía faltar, cualquiera se contagia con eso de despedir el año como si fuese una persona… La verdad no soy tan navideño pero tampoco tan grinch, algo de espacio en Thanks Network se le puede hacer a este tema -pensé-.

En fin, poco de éste año 2012 le tocó a Thanks Network. Aún falta demasiado por hacer a éste cachito de la red, pero bueno… lo importante es que al menos ya comenzó.

Y solo eso… quizá poco contenido en 2012 pero les aseguro que habrá mucho contenido en 2013. Algún día habrá tanto contenido como para hacer un «Resumen» de fin de año =9 … Y justamente eso último será uno de nuestros propósitos de año nuevo, generar contenido.

Por lo pronto, les deseamos felices borracheras fiestas, feliz Navidad y prospero año nuevo.

Geolocalizacion en Facebook

Para muchos Facebook es  una de las redes sociales con mas impacto dentro de la sociedad moderna.
Con solo preguntarnos  ¿Quién no usa Facebook ?. Muchos de nosotros  la utilizamos para compartir ideas, fotos, vídeos etc…

La Geolocalización se compone de otros conceptos tales como  Georreferenciación y Geoetiquetado.

Georreferenciacioón : Define el posicionamiento con el que se define la localización de un objeto en un sistema de coordenadas.

Geoetiquetado (Geotagging): un proceso donde se agrega información geográfica en los meta datos de archivos (imágenes, vídeos,sitios,etc) que sirven para la Georreferenciación.

Entonces podríamos decir que la geolocalizacion es representar de manera gráfica y extensible la posición geográfica de un «algo» donde ese algo puede ser cualquier cosa persona, vehículo, imagen, etc…

Si bien es cierto cuando nosotros estamos en nuestro perfil pasamos muchas cosas por desapercibido pero no con esto quiero decir que la mayoría que usamos Facebook no lo notemos, pues bien cuando uno se conecta a su perfil este registra el lugar de donde haz iniciado sesión, el explorador que haz usado junto con el sistema operativo que haz utilizado para acceder a tu perfil.

Figura 1 : Sesion en Facebook con geolocalización
Cada geolocalización cambiará dependiendo del sistema operativo y el explorador  utilizado, como se muestra
Figura 2 : Sesion en Facebook con geolocalización
Esto también pasa con las publicaciones que hacemos
Figura 3: Publicacion  en Facebook con geolocalización
Figura 4: Publicacion  en Facebook con geolocalización
Pero te as de preguntar como es posible todo esto pues bien existen varias maneras de geolocalizarte una de ellas es tu dirección IP con la que te conectas a Internet.
Otra manera de es atravez del GPS(Global Positioning System) de tu móvil ,muchas veces dentro de nuestros dispositivos tenemos activo el GPS y esto conlleva a cuando realizamos publicaciones se indexen datos en imagenes,comentarios me refiero a  los datos de los datos que como ya mencione y el resultado es la Geoetiquetado.

La Triangulacion de ante nenas de redes de celulares que es la mas distribuida pero la menos usada por el costo y esto hace que no sea muy accesible (Red 3G).

Pues ya lo sabes si quieres que tu novia o novio  celoso(a) te encuentre fácilmente no olvides en encender el  GPS de tu celular.
Solo queda comentar que la privacidad es tuya y tu solo sabes con quien compartes tu geolocalizacion.

Saludos…