sábado, 20 de abril de 2013

Como Actualizar Campos en la Bases de Datos con JQuery y ASHX

La función del ASHX es comunicarse con nuestra pagina web por medio de funciones javascript para hacer pedidos al servidor como los son el $.get(), $.load(), $.ajax().

En nuestro caso utilizaremos la función $.get(), la cual quedará de la siguiente manera:
Donde los parámetros son el campo que se va actualizar, el nombre del campo en la tabla y el nuevo valor. Los parámetros son enviados por QueryString al nuestro ASHX.

Luego generamos los eventos a los controles para hacer el efecto de edición los controles, aquí al momento de cargar la pagina web asignamos los con las teclas ESC para cancelar Edición.


Creamos la función que hace el llamado a actualizar campos. Esta función recibe la opción que va a realizar si es cuando dió clic en Editar o cuando dió Enter para Actualizar o simplemente el control perdió el focus para cancelar Edición. Este caso es para el Editar Nombre:


Creamos nuestro formulario:





Adjunto el archivo ASHX, debe estar en la misma carpeta donde esta el formulario:





jueves, 18 de abril de 2013

Como Seleccionar CheckBox del GridView Utilizando CheckBox Template


Primeramente verificamos el nombre que genera el control en el html en mi caso se llama:
ctl00_ContenidoIntranet_ASPxGV_Requisas_header0_HeaderGridASPxCheckBox_I.

Luego a ese control se agregamo el evento click y creamos la función donde buscara todos los CheckBox del grid y le establecerá el valor del checked del CheckBox en el header.

$('input[id*=ctl00_ContenidoIntranet_ASPxGV_Requisas_header0_HeaderGridASPxCheckBox_I]').click(function() {
var check = $('input[id*=ctl00_ContenidoIntranet_ASPxGV_Requisas_header0_HeaderGridASPxCheckBox_I]').is(':checked')

$('input[id*=ItemGridASPxCheckBox_I]').attr('checked',check)
});

Sumar Columna en un DataTable

Con el DataTable lleno con los registro de la bases de datos hacemos un compute del DataTable:

Tambien podes hacer uso del Count, Max, Min , etc. De todos los registros en el DataTable.
Si es una operación condicional se pasa el filtro en el segundo parametro.


Hacer la misma suma pero utilizando LINQ:

objDisb.dCommissionAmount = dt.AsEnumerable().Sum(x => x.Field<Decimal>("CommissionPerc"));


Como Agregar y Editar Filas en un AsxpGridView DevExpress Utilizando DataItemTemplate

Primeramente creamos nuestro diseño de las columnas del GridView:



Luego en el grid seleccionamos la propiedad Template en la esquita superior derecha del GridView:

En cada columna seleccionamos la propiedad DataItemTemplate donde arrastraremos el tipo de control segun el tipo de dato de la tabla, TextBox, ComboBox, SpinEdit, CheckBox, etc., y lo vincularemos con el campo del origen de datos:

Debemos agregar a cada control el evento ValueChanged del Client-Side Events para hacer un PerformCallback() del GridView y capturar en nuevo valor.


Tambien debemos habilitar la propiedad AllowFocusedRow del GridView:



Luego de tener vinculados todos los campos y los controles procedemos al llenado del origen de datos, llenaremos una DataTable que lo mantendremos en session para persistir los datos del GridView.



Ahora utilizaremos los siguentes eventos del grid para la manipuación de los datos y los controles:
  1. CommandButtonInitialize: Con este evento verificamos si solo hay una fila en el grid y ocultaremos el boton de eliminar.
  2. CustomCallback: Con este evento actualizaremos los campos en el dt en session para luego refrescarlos en el GridView.
  3. HtmlRowPrepared: Con este evento buscaremos los controles de tipo combox para llenarlos o bien para manipular el control al inicializar un nuevo registro.
  4. InitNewRow: Con este evento agregamos una nueva fila la cual todos los datos estan vacios esperando los datos a ingresar.
  5. RowDeleting: Con este evento eliminamos un registro del dt en session.
  6. RowDeleted: Con este evento validamos que no nos de error el GridView ya que no estamo utilizando los eventos de agregar, editar y eliminar generados por el asistente del GridView. 


miércoles, 17 de abril de 2013

Como Sumar Totales con Selección en un AspxGridView del DevExpress

Primeramente, creamos los TotalSumary en el AspxGridView donde ingresamos el campo que va a sumar (FieldName), en que columna se va a mostrar (ShowInColumn), si esta activada la agrupación, en que columna se va a mostrar (ShowInGroupFooterColumn), el tipo de operación (Sum, Min, Max, Count, ...):



Con solamente esto ya tenemos la suma de todos los registros, pero ahora para hacer una operación personalizada de acuerdo a la selección de los registros se hace de la siguiente manera:

Seleccionamos el tipo de operación Custom y en el campo Tag ingresamos el nombre de la operación donde se mostrará el valor.

Luego utilizaremos el evento CustomSummaryCalculate del AspxGridView para hacer la suma:


La variable global Total realiza la suma del campo y la variable global TotalCount es la cantidad de registros seleccionados.

Tambien debemos hacer un PerformCallback() en el evento SelectionChanged del gridview:


Bienvenidos al Blog Trucos y Curiosidades de Programación

El objetivo de este blog es publicar todos los trucos y curiosidades que nos pasan a diario a los programadores.

Muchas veces nos ha pasado que tenemos que hacer uso de algunos trucos e ingenios para resolver algun caso especial, cuando por x o y motivo no funciona nuestro formulario.

Este blog nos servirá para recordar todas las mejores practicas o implementaciones que en algún momento realizamos para resolver algun problema. También servirá de mucha ayuda para resolver rapidamente un caso especial cuando se nos presente.