agosto 03, 2008

Recursos .net en video

Para los que nos gusta aprender de forma mas visual aqui les dejo la direccion de un sitio con bastantes videos de algunas tecnologias de .net, controles de usuario, membership, tmbien hay uno muy bueno de nhibernate, espero los disfruten, saludos..

dnrtv.com

Si te ha tocado desarrollar una pagina web en aspnet en donde se requiere un dropdownlist que no muestre ningun valor inicial y no te quieres complicar la vida buscando soluciones de terceros o incluso usar el ajaxcontroltoolkit aqui te dejo una solución facil al problema:

1. Problema: Quieres que el DropDownList aparezca asi:




Pero siempre te sale asi:





3. Solucion: Cuando el metodo DataBound del DropDownList se ejecute debes de agregar un nuevo item al inicio del DropDownList ya sea que le dejes el texto vacio o que les escribas alguna indicacion, por ejemplo "Seleccione un usuario", el bloque de codigo a continuacion muestra como:

Texto en blanco

protected void DropDownList1_DataBound(object sender, EventArgs e)
{
DropDownList1.Items.Insert(0, new ListItem("","0"));
}

Con Texto

protected void DropDownList1_DataBound(object sender, EventArgs e)
{
DropDownList1.Items.Insert(0, new ListItem("Seleccione un usuario","0"));
}

Despues de estar probando y probando al fin me resulto, ¿Como sacamos los datos de un GridView a un hoja de Excel?.

Primero supongo que ya tienen todos los datos en el Gridview y ya se muestra en el webForm.

Como segundo paso tenemos que agregar un boton y en el evento click agregamos el siguiente codigo:


Response.ClearContent();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.xls";

System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();


Si lo corremos en este momento nos va a dar el siguiente error


Control 'GridView1' of type 'GridView' must be placed inside a form tag with runat=server.


Entonces lo que debemos hacer es agregar el metodo sobrecargado del metodo VerifyRenderingInServerForm, y dentro de este metodo no ponemos nada, de la siguiente manera:


public override void VerifyRenderingInServerForm(Control control)
{

}


Y asi ya tenemos funcionando nuestro Gridview y lo podemos exportar a excel.

Si no queremos presionar el boton para que se exporte sino que queremos que al cargar la pagina se exporte a excel lo que debemos de hacer es copiar el mismo codigo al evento load del gridview y ya, espero les sirva, dejen su comentario y nos vemos a la proxima.

Para incluir AJAX a nuestros sitios web debemos de incluir la extension de AJAX al Visual Studio, lo primero que debemos hacer es bajar el ASP.NET 2.0 AJAX Extensions 1.0 y el ASP.NET AJAX Control Toolkit.

Primero debemos instalar el primer archivo, es un instalador, ese se va solo siguiente y siguiente, cuando terminemos podemos abrir el Visual Studio y ya nos aparecen las opciones de Nuevo Sitio Web con opcion de Ajax Enabled, creamos un proyecto de este tipo.

El siguiente paso es descomprimir el Toolkit a cualquier carpeta del disco duro.

Luego en el sitio web que tenemos creado en la pestaña de Toolbox, le damos click derecho y le damos Add Tab, le ponemos el nombre que queramos, luego le damos otravez click derecho en el area de la nueva Tab que creamos y seleccionamos Choose Items.

Nos aparecera una ventana y hay que presionar el boton Browse, tenemos que ir a la carpeta que acabamos de descomprimir, luego ubicarnos en el folder SampleWebSite luego en el folder Bin y seleccionamos el archivo AjaxControlToolkit.dll, le damos ok y ya tenemos instalados todos los componentes de Ajax, bueno hasta ahi les dejo, hay me cuentan como les va.

La manera mas facil de hacer las conexiones a la base de datos en ASP.NET es haciendo uso del Web.config, el area donde se configuran las cadenas de Conexion (pueden ser mas de una) es como se muestra el codigo a continuación:


<connectionstring>
< add name="NOMBRE" ConnectionString="CADENACONEXION" providerName="System.Data.SqlClient"/>
</connectionstring >


Despues ya en el codigo c# se utiliza de la siguiente manera:


string Cadena=ConfigurationManager.ConnectionStrings["NOMBRE"].toString();
sqlConnection sqlConexion = new sqlConnection(Cadena);


Se debe hacer uso del siguiente namespace:

using System.Configuration;

Espero que les sirva de algo, a mi me ayudo bastante, nos vemos en otro post y si les sirvio o puse algo mal dejen un comentario.