Etiquetas

,

En el actual proyecto en el que estoy inmerso, nos hemos encontrado con la necesidad de realizar operaciones CRUD con los controles de devexpress. Hasta ahora eran pantallas con pocos campos, pero al llegar a una hemos visto que eran suficientes como para intentar evitar crear una nueva ventana de edición. Investigando un poco por la red, nos encontramos con propiedades como “Edit mode” y events como RowUpdated, dichos elementos nos servirán para crear nuestro CRUD de manera más sencilla y eficiente. En este post, veremos un tutoríal para realizar estas operaciones de forma sencilla. SELECT: Para realizar un select y mostrar los campos en el grid, crearemos (según nuestra arquitectura) los método necesarios para que nos devuelvan los datos que mostraremos en el grid. Posteriormente arrancaremos el designer para crear las columnas y asignarle los campos en la propiedad FieldName.

ACTUALIZACIÓN:

Para realizar las actualizaciones, lo que haremos será activar la propiedad de la vista “edit mode” para ello la establecemos a “editForm”. Con esto lo que hacemos es que se genere una pantalla modal de forma automática la cual tiene dos botones, uno de “update” y otro de “cancel”. Esto permite lanzar la pantalla modal de forma automática cuando se hace doble click sobre el grid y cuando se realiza la modificación actualiza la fila que hemos editado. Si queremos persistir los cambio de forma manual capturaremos el evento de la vista “gridView1_RowUpdated”.

imgEditForm

Añadir

Para añadir un elemento, la idea es crear una fila vacía, y lanzar la pantalla en edición sobre esa fila, esto nos permitirá que la ventana de edición esté en blanco y modificaremos sus campos. Una vez modificados se lanzará el evento anteriormente mencionado. El código será el siguiente: List lsd = new List(); Infraestructure.Entities.Views.UCGrid item = new Infraestructure.Entities.Views.UCGrid(); lsd.Add(item); lsd.AddRange((List)grdfunds.DataSource); grdfunds.DataSource = lsd; gridView1.FocusedRowHandle = 0; gridView1.ShowEditForm();

Borrar

Para borrar haremos como solemos hacer siempre, elegimos la fila que tiene el foco, y la eliminamos, por último refrescamos el grid. private void XgrdCxx_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { try { //Elige la fila seleccionada xxInitialGrid rowData = (xxInitialGrid)XgrdCartas.GetRow(e.FocusedRowHandle); this.SelectedData = rowData; } catch(Exception ex) { //Esta excepción no debe ser lanzada, sino tratarla y mostrar un aviso al usuario. Exception outEx; if (EntLib.HandleExceptionUI(ex, out outEx)) { fAlert alerta = new fAlert(fAlert.TIPOS_ALERTAS.WARNING, “Error”, Infraestructure.Localization.GlobalMessages.ucxxAlertErrorSeleccion); alerta.ShowDialog(); } } }

 

Y esto es todo! Un saludo y espero que sea util.

Anuncios