sábado, 20 de octubre de 2007

desplazarse con ENTER en asp.net



Este ejemplo va para darle mas facilidades al usuario final y un poco tratando de que nuestras aplicaciones Web se parezcan alas aplicaciones Windows con todas las funcionalidades que nos brinda. Para pasar de un control a otro pulsando la tecla enter

Función que nos permite pasar de un control ah otro



Aquí lo k hacemos es agregar la funcion de javascript a nuestros controles del lado del servidor.

For Each Con As Control In Page.FindControl("Form1").Controls
If (TypeOf Con Is TextBox) Then
CType(Con, TextBox).Attributes.Add("onKeyDown", "SiguienteObjeto();")
ElseIf (TypeOf Con Is DropDownList) Then
CType(Con, DropDownList).Attributes.Add("onKeyDown", "SiguienteObjeto();")
ElseIf (TypeOf Con Is RadioButtonList) Then
CType(Con, RadioButtonList).Attributes.Add("onKeyDown", "SiguienteObjeto();")
'ElseIf (TypeOf Con Is CheckBox) Then ' para los CheckBox
' CType(Con, CheckBox).Attributes.Add("onKeyDown", "SiguienteObjeto();")
'ElseIf (TypeOf Con Is CheckBoxList) Then 'para los CheckBoxList
' CType(Con, CheckBoxList).Attributes.Add("onKeyDown", "SiguienteObjeto();")
' si hay controles de otro tipo solo agregar como los ejemplos anteriores

End If
Next





>
descargar fuente PruebaEnterWeb.rar


espero haver sido de ayuda.

Compartir

jueves, 18 de octubre de 2007

Pasar datos de una Pagina Hija a una Pagina Padre con Popup en Asp.Net

a pedido de nuestro amigo Miguel A. ahi les pongo un ejemplo de como pasar datos de una pagina hija(popup) a una pagina padre en asp.net combinado con javascript.




descargar fuente aqui


espero haver sido de ayuda.

miércoles, 3 de octubre de 2007

Mantenimiento de Datos con Modal Popup en ASP.NET

k quede claro k solo funciona para las versiones de internet explorer y para los demas seria lo mismo pero con window.popup













descargar fuente MantenimientoDatosConPagModal.rar


espero haver podido ayudar...cualkier duda solo scriban.

lunes, 30 de julio de 2007

Paginacion Numerica y Alfabeticamente en GridView

Va.....tu jefe te pide que ordenes los datos alfabeticamente en una grilla....chevere en el articulo anterior postie un ejemplo de como hacerlo (copia y pega y ya esta)....pero no ! por q' me puso la interrogante que si listas 100 productos que empiezan con "A" la lista es muy larga y solo quiere verlo de 15 en 15 tons que se hace?...se pagina alfabeticamente y se enumera los bloques de datos .....(q' cargoso de jefe).....ahora yo me pongo la interrogante.. si lo hago como el ejemplo del post anterior con sentencia select staria facil pero es con procedimiento almacenado y esta en una funcion que me retorna un dataset....lo primero que se me vino ala cabeza es igualarlo aun DataView y hacer un RowFilter para filtrar por la letra seleccionada en el Footer del gridView ....facil verdad y sí sale... me muestra los datos por la letra seleccionada y paginado enumericamente....pero.... siempre con los peros ......ocurre que un DataView no hace select... como asi que es eso no entiendo...bueno ahi explicare un poco:
pasa que cuando en el DataView cargas un DataSet on un DataTable sigue manteniendo los datos del DataSet o del DataTable por mas veces que ayas hecho RowFilter...y aun si ah ese DataView ya Filtrado lo iguales ah Otro DataView para con ese hacer la paginacion con numeros aun asi siguen los datos del DataSet o del DataTable......y los datos filtrados ah donde se van...? solo se muestran en el GridView y por el GridView no puedes paginar numericamente(solo se pagina con una fuente de datos no con un control)....bien! descartado el DataView....ahora buscar una clase de datos que me permita hacer un select,.....bueno yo solo conosco 2 fuentes de datos,,......DataSet y DataTable.....como segunda alternativa probe con el DataTable....como lei en la documentacion del DataTable es una estructura de tablas osea que contiene filas, columnas, registros,claves primarias, foren key y segun los conocientos que tenemos ah una tabla se le puede hacer un select tons dije q' de seguro salia con el DataTable y fue sierto me salio pues....lo que hice es recuperar el DataSet en un DataTable y ya no en el DataView,........de ahi en el momento de hacer el filtrado declare otro DataTable que recupera la esctructura del primer DataTable ojo solo la estructura no todo la tabla....y le hago el select al primer DataTable y segun los datos que coincidan va llenando al segundo DataTable y ya con eso hago paginacion numerica y alfabeticamente en un GridView y ahora se preguntaran por q' hago todo eso como dije anteriormente q' solamente con dataview sale y es mas facil......el problema surge cuando quiero seleccionar una fila y capturar sus valores como para mostrar un detalle, pues por eso utilize el DataTable por que ya les explique la limitacion del DataView.....






Descargar Fuente :PruebaPaginacionAlfaNumericDataTableDataView.rar







jueves, 26 de julio de 2007

Poner Mensaje 'No hay registro' sin necesidad de programar...

Bien muchas veces en las paginas k' muestran consultas ponemos los datos ah buscar y kuando no encuentra no se muestra el gridview y los programadores pones un Label para q' muestre 'NO HAY REGISTROS' y su clasica pregunta es

If Ds.Tables(0).Rows.Count>0 Then
MostrarDatos()
Else
Label.Text="Tamare no hay datos"
End If

ahora no hay k' hacer eso las cosas son mas sencillas

Bien dirijete al GridView activas el smartag luego click en Editar Plantillas, activas el smartag y en mostrar escoges EmptyDataTemplate y en el spacio ke sale escribes con el color o el formato ke kieres "Tamare no hay datos" bien ahora guardan y lo prueban .......bien espero haber podido ayudar....

viernes, 20 de abril de 2007

Paginación Alfabética en GridView



Muchas páginas nos cargan de ejemplos de GridView paginados con enumeraciones del 1 hasta el de rango que tiene de datos y hasta nos ponen con símbolos como esto << , < > , >> indicando que los datos siguen …pero ninguna nos muestra como hacerlo alfabéticamente es por eso que ahí va un ejemplo de cómo hacer.

Paso 1.-Agregar un Label y un GridView ala pagina.

Paso 2.-Borrar el Text del Label y poner en true la propiedad ShowFooter del GridView y si gustas le pones un Auto formato al GridView.

Paso 3.-Importamos las Clases Data y SqlClient

Imports System.Data
Imports System.Data.SqlClient

Paso 4.-Declaramos las Variables.

Private Dst As New DataSet()
Private Tabla As DataTable

Paso 5.-Creamos la función CargarGridView con un parámetro opcional para cuando la pagina cargue mande el valor por defecto que nosotros creemos conveniente en este caso va ah ser la letra A para listar en el GridView.

Private Sub CargarGridView(Optional ByVal AZ As String = "")
Dim Cns As String = "data source=.;initial catalog= Northwind;uid=sa;pwd="
Dim Con As New SqlConnection(Cns)
Dim Dap As SqlDataAdapter
If AZ = "" Then
Dap = New SqlDataAdapter("Select ProductName,UnitPrice From Products where ProductName Like 'A%'", Con)
Else
Dap = New SqlDataAdapter("Select ProductName,UnitPrice From Products where ProductName Like '" & LCase(AZ) & "%'", Con)
End If
Dap.Fill(Dst, "Producto")
'si nustro dataset tiene filas los muestra en el gridview
'ya paginado

If Dst.Tables("Producto").Rows.Count > 0 Then
GridView1.DataSource = Dst
GridView1.DataBind()
LblCantidadRegistro.Text = ""
Else
'y si es que no lo tiene le damos una tabla vacia al gridview y por ende
'nos muestra los datos anteriores y mandamos un mensaje
'indicando que no hay registros ya que si no hacemos esto el gridview
'no se va ah ver en la pagina.

Tabla = New DataTable
GridView1.DataSource = Tabla
LblCantidadRegistro.Text = "No hay Registro"
End If
End Sub


Paso 6.-Llamamos la función CargarGridView al cargar la Pagina.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CargarGridView()
End If
End Sub


Paso 7.-Mientras crea las filas de datos, en el Footer del GridView se crea los LinkButton de la A-Z dando como Nombre del comando ‘AZ’.

Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
If e.Row.RowType = DataControlRowType.Footer Then
e.Row.Cells.Clear()
Dim tc As New TableCell()
'combinamos la columna a 2 ya que nuestro dataset tiene dos columnas
'el valor varia de acuerdo alas columnas que vas a mostrar en tu gridview

tc.ColumnSpan = 2
'Creamos la fila combinada en el gridview
e.Row.Cells.Add(tc)
Dim i As Integer
'sacamos los valores de la A-Z en ASCII
'que empieza del 65 al 90 para luego mostrar
'en su equivalente en letra

For i = 65 To 65 + 25
Dim Link As New LinkButton()
Dim Lc As New LiteralControl()
Lc.Text = " "
Link.Text = Chr(i)
Link.CommandName = "AZ"
Link.CommandArgument = Chr(i)
'vamos agregando el LinkButton con su nombre
'ala fila creada

tc.Controls.Add(Link)
tc.Controls.Add(Lc)
Next
End If
End Sub


Paso 8.-Para paginar haciendo clic en los LinkButton se programa en el evento RowCommand del gridview solo capturamos en nombre del LinkButton y ordenamos llamando la función CargarGridView en este caso ya dando un valor.

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
If e.CommandName = "AZ" Then
CargarGridView(e.CommandArgument)
End If
End Sub


Si quieres remplazar los LinkButton por Button solo cambia el nombre de la clase ejemplo.
Ubicamos esta línea:
Dim Link As New LinkButton()
Y los reemplazamos por
Dim Link As New Button()


Eso es todo….espero haber podido ayudarlos