Académique Documents
Professionnel Documents
Culture Documents
Net 1
Modelo:
Libro
Código int Ejemplar
1 Posee 0,n Código int
Nombre varchar
Descripción varchar Ubicacion varchar
Trabajar sobre una relación de uno a muchos, como en este caso, permite
visualizar que el control GridView sirve tanto para éste tipo de relaciones como
también para una relación de uno a uno.
Para cualquier duda sobre este proceso consultar introducción al gridView en:
http://www.subgurim.net/articulos/ado-net-y-acceso-a-datos-articulo35.aspx
Una vez hecho esto debemos agregar las columnas que permitirán editar y eliminar
cada una de las filas de la grilla. Para lo cual debemos seguir los siguientes pasos
dentro de la etiqueta inteligente.
Ir a:
• Propiedad HeaderText e ingresar un nombre de cabecera de columna.
• Propiedad ButtonType y seleccionar Button.
• Propiedad ShowDeleteButon y seleccionar trae.
• Luego aceptar.
Con lo que se añadirá una nueva columna en la grilla con el nombre de Eliminar.
Para la agregar la columna Editar se debe realizar un par de pasos adicionales pero
básicamente es lo mismo que el anterior, dentro de la etiqueta inteligente en editar
columna crear un campo CommandField. Luego de agregar el campo seleccionado
se debe seguir los siguientes pasos:
Ir a:
• Propiedad HeaderText e ingresar un nombre de cabecera de columna.
• Propiedad ButtonType y seleccionar Button.
• Propiedad ShowEditButon y seleccionar True.
A diferencia de la columna Eliminar la columna Editar agrega dos botones más una
vez seleccionada la fila a editar, uno para actualizar la fila seleccionada y el otro
para cancelar la acción de editar, si se desea incluir imágenes o iconos a estos
botones ir a:
Para cualquier duda sobre este proceso consultar columnas de gridView en:
Informe Técnico sobre Grillas de Asp.Net 4
http://www.subgurim.net/articulos/ado-net-y-acceso-a-datos-articulo47.aspx
Ahora veremos como funcionan los eventos del objeto GridView, para adicionar
cualquier evento debemos seleccionar el GridView y luego en las propiedades que
se despliegan en la esquina inferior derecha de la pantalla seleccionar la figura de
rayo amarillo. A continuación se sugiere seguir la siguiente secuencia:
Ir a:
If ds Is Nothing Then
MsgBox("No existen ejemplares registrados de este libro)
Else
For i As Integer = 0 To ds.tables(0).Rows.Count - 1
Dim elemento As New ListItem
elemento.Text = ds.tables(0).Rows(i)(1).ToString()
elemento.Value = ds.tables(0).Rows(i)(0).ToString()
Me.DropDownList1.Items.Add(elemento)
Next
End If
End Sub
Una vez publicada en la web esta pagina debe tener la siguiente funcionalidad:
Para seleccionar un libro agregaremos un evento proveniente del botón que indica
que al hacer clic en él, se dispare el método Click_Boton el cual va recuperar el
libro seleccionado en el comboBox y desplegara los ejemplares del libro dentro de
la grilla. Se hizo uso del método CargarEjemplares() con el objetivo de poder
reutilizarlo cada vez que se indique un diferente libro.
Informe Técnico sobre Grillas de Asp.Net 7
CargarEjemplares()
End Sub
If ds Is Nothing Then
MsgBox("No existen ejmplares registrados para este Libro")
Else
Me.GridView1.DataSource = ds
Me.GridView1.DataBind()
End If
End Sub
Antes de pasar al código se debe dar un par de explicaciones con respecto a como
manejar las claves primarias de la grilla, el objeto gridView maneja una propiedad
llamada DataKeyField mediante la cual se le indica a la grilla cuales son los
campos claves, es decir, todas las operaciones se realizan por medio de ellas por
ejemplo buscar cual es la fila que se va a eliminar o cual va hacer editada de igual
manera que un motor de base de datos.
• Propiedades de la grilla
Informe Técnico sobre Grillas de Asp.Net 8
• Propiedad DataKeyField
• Escribir el nombre de los campos claves de la grilla
Esto nos permite que al momento de editar una fila solo se editen los campos que
no son claves.
Try
Dim codigo_ejemplar As Integer = Nothing
Dim liIndex As Integer = e.RowIndex
Dim ej As New Ejemplar()
cod_ejemplar = GridView1.DataKeys.Item(liIndex).Values.Item("cod_ej").ToInt()
ej.propiedad_codigo_ejemplar = codigo_ejemplar
ej.Eliminar()
CargarEjemplares()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Try
cod_ej = GridView1.DataKeys.Item(liIndex).Values.Item("cod_ejem").ToInt()
ej.propiedad_codigo_ejemplar = cod_ej
ej.propiedad_codigo_libro = Me.Ddl_libros.SelectedItem.Value
ej.propiedad_ubicacion = GridView1.Rows().Item(liIndex).Cells(4).Text
ej.modificar()
CargarEjemplares()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Informe Técnico sobre Grillas de Asp.Net 9
Nota: Todos los objetos de diseño en Asp pueden ser visibles o no al cargar la
pagina esto se realiza por medio del atributo Visible con un valor true o false.
Para este caso el panel debe estar como no visible al cargar la pagina.
En resumen, cada vez que se necesite agregar una fila se presionará el botón
Crear nuevo Ejemplar desplegando el panel para hacerlo. Luego que se presione
el botón Grabar para agregar la fila.
Me.Panel2.Visible = True
Dim codigo_ejemplar As Integer = Nothing
Dim ej As New Ejemplar()
Dim dt As New DataTable()
dt = ej.DevolverProximoCodigo().Tables(0)
codigo_ejemplar = dt.Rows(0)(0)
Nota:
Revisar Documentación del Objeto WebControl Panel.
http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.panel(VS.80).aspx
Me.Panel2.Visible = False
Me.CargarEjemplares()
End Sub