viernes, 28 de agosto de 2009

GridView linq paginado

Planteamiento:
Queremos establecer el origen de datos de un grid view desde los valores en una serie de combos.
Los combos contienen un listitem "(todos)" con valor "0" y descripciones y codigos desde una base de datos o pueden contener criterios que cambian el orden o establecen un filtro mas complicado.
Y ademas queremos paginar.
Y lo haremos sin el control web visual de linq.

Solucion
Podemos construir el origen de datos mediante una variable system.linq.iqueryable (of datos)
Sobre esta variable vamos a realizar restricciones sucesivas y al final una asignación al grid:
Sub actualizaListaTextos()
Dim Query = From tx In bd.Texto
If cmbPlantilla.SelectedValue <> "0" Then
Dim plan = bd.Plantilla.Single(Function(p As Plantilla) p.idPlantilla = CInt(cmbPlantilla.SelectedValue))
Dim listaIdTextos = From id In plan.TextosPlantilla Select id.idTexto
Query = From tx In bd.Texto Where listaIdTextos.Contains(tx.idTexto)
End If
Select Case cmbPosicion.SelectedValue
Case "0"
Query = From q In Query Order By q.Nombre
Case "1"
Query = From q In Query Where q.OpcionCabeza = True Order By q.OrdenCabeza
Case "2"
Query = From q In Query Where q.OpcionPie = True Order By q.OpcionPie
Case "3"
Query = From q In Query Where q.OpcionCabeza = False And q.OpcionPie = False Order By q.Nombre
End Select
GridTextos.DataSource = From q In Query Select q.idTexto, q.Nombre
GridTextos.DataBind()
End Sub


Cada vez cambia un combo llamamos a este sub:

Protected Sub cmbPlantilla_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cmbPlantilla.SelectedIndexChanged, cmbPosicion.SelectedIndexChanged
actualizaListaTextos()
End Sub


Nos falta el paginado:

Private Sub GridTextos_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridTextos.PageIndexChanging
GridTextos.PageIndex = e.NewPageIndex
actualizaListaTextos()
End Sub


E voilaaa.

lunes, 8 de junio de 2009

Problema de ñ y acentos en página web

Sintomas:
Las ñ y acentos se visualizan con los clásicos chinos en una página asp editada con Visual Studio.
Solución:
Es trivial, a la hora de guardar en lugar de guardar usar guardar como y utilizar la codificación: Europeo Occidental (windows).
Comentario:
Parece tonto pero es algo que se te olvida.

viernes, 5 de junio de 2009

Formato CRON en Scheduler de Cumulus de Canto

Sintomas:
Cuando intentas utilizar el formato CRON para programar tareas en el scheduler el servicio se detiene y no se ejecutan las tareas
Resolución
Hay que utilizar el comodin ? en lugar del * para los dias del mes y de la semana
Ejemplos:
Si escribes 0 0/10 * * 2-6 no funcionará, y en el registro wrapper.log tendrás el error:

java.lang.UnsupportedOperationException: Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.

Tienes que escribir 0 0/19 ? * 2-6

viernes, 15 de mayo de 2009

Linq, clave primaria y tabla readonly

Sintomas:
Actulizas mediante linq uno o mas registros de una tabla. Cuando procedes a submit los cambios no salta ningún error pero tampoco se trasladan al servidor.
Solución:
La tabla esta en solo lectura.
Aparte de los permisos, la causa mas frecuente es que no le hayan creado la primary Key.
Modificar en el servidor y borrar y volver a añadir la tabla actualizada en la clase de linq to SQL.
Fijate que se haya actualizado y aparezca la primary key.

jueves, 30 de abril de 2009

Ñ en IIS 6 publicado con ISA Server

Sintomas:
Al intentar publicar un sitio con Ñ en un IIS detras de un ISA server tenemos distintos problemas, resumiendo:

  1. No podemos crear una entrada para que reconozca el host header mediante el interfaz de administración del IIS
  2. Cuando al final lo creamos editando la metabase no funciona. Recibimos un error del servidor similar a no haber creado el enlace.
Solución:
Utilizar la codificación punnycode de la url tanto para definir los host header en el IIS como para el sitio externo en las reglas de publicación en el ISA.
Por ejemplo:
En lugar de http://www.ceramicadeespaña.es/
Usar http://www.ceramicadeespaña.es/
T
Podemos encontrar un conversor en: http://mct.verisign-grs.com/index.shtml

Comentario:
Solución encontrada en:http://www.gafvert.info/iis/article/idn_domain_names_iis.htm
MS me lió bien liado con la edición de la metabase.

Error Macrovision Software en Avaya Phone Manager sobre Vista

Síntomas:
Cuando un usuario normal intenta abrir por primera vez Avaya Phone Manager sobre un Windows Vista, le salta un error de MacroVision Software ha dejado de funcionar.
Solución:
Ejecutar una vez en la sesión del usuario pero hacerlo como administrador.
Nota:
En esta primera ejecución como administrador no debemos crear marcaciones abreviadas ni otras personalizaciones porque no se guardaran en el perfil del usuario.

martes, 28 de abril de 2009

No funciona la ayuda de algunos programas en Windows Vista

Sintomas:
En Windows Vista la ayuda de algunos programas no funciona.
Resolución:
Instalar win32hlp.exe descargable desde http://www.microsoft.com/downloads/details.aspx?familyid=6EBCFAD9-D3F5-4365-8070-334CD175D4BB&displaylang=en
Comentarios:
Parece ser que MS optó por la sano suprimiendo este archivo de la distribución de Vista.
Creo que por motivos de seguridad. Pero lo cierto es que muchos programas antiguos y modernos fallan al darle al Help