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....