Eliminar filas de un Datagrid

13/02/2005 - 19:01 por Barbara | Informe spam
Hola a todos:

Tengo un datagrid enlazado con una DataTable. Quiero que el usuario pueda
tocar una fila del DataGrid y darle a un botón y que la fila se elimine.
Inicialmente usé esto:

Sub BorraLineaDatagrid(ByVal dg As DataGrid, ByVal dt As DataTable)
dt.Rows(dg.CurrentRowIndex).Delete()
End Sub

Y funciona perfectamente siempre y cuando el orden del DataGrid y el de la
Tabla coincidan, pero si el usuario ha ordenado el DataGrid como puedo hacer
para borrar el elemento??.

Gracias a todos.
 

Leer las respuestas

#1 Rs
14/02/2005 - 16:39 | Informe spam
Agrega un indice a la tabla que estas cargando ej...
Dim tDatosGuia As DataTable = New DataTable
("DATSELEC")
Dim ctGuia As DataColumn = New DataColumn
("NR_GUIA")
Dim ctFec As DataColumn = New DataColumn
("FECHA_GUIA")
Dim ctItem As DataColumn = New DataColumn
("INV_ITEM_ID")
Dim CtDescr As DataColumn = New DataColumn
("DESCR60")

Dim TdFila As DataRow

tDatosGuia.Columns.Add(ctGuia)
tDatosGuia.Columns.Add(ctFec)
tDatosGuia.Columns.Add(ctItem)
tDatosGuia.Columns.Add(CtDescr)

KeyTabla(0) = tDatosGuia.Columns("NR_GUIA")
KeyTabla(1) = tDatosGuia.Columns("INV_ITEM_ID")
tDatosGuia.PrimaryKey = KeyTabla

cuando necesites buscar define una variabla tipo objeto de
las mismas dimenciones que la definicion de la key de tu
tabla

Dim BusDatos(1) As Object
Dim foundRow As DataRow

ahora para buscar debes cargar el objeto

BusDatos(0) = cbxdatos.SelectedItem("NR_GUIA")
BusDatos(1) = cbxdatos.SelectedItem("INV_ITEM_ID")

ahora la instruccion la puedes usar para buscar y
modificar, o agregar mas informacion, o para borrar la
fila que desees sin importar el orden que tenga.

foundRow = dsetTabla.Tables("DATSELEC").Rows.Find
(BusDatos)

If (foundRow Is Nothing) Then
' No existe la fila
' puedes agregarla
else
' existe y puedes modificar o borrar
end if

Para borrar, con el mismo objeto de busqueda agregar
delete... y listo
dsetTabla.Tables("DATSELEC").Rows.Find
(BusDatos).Delete()

Espero te ayude.

saludos
Rsc



Hola a todos:

Tengo un datagrid enlazado con una DataTable. Quiero que


el usuario pueda
tocar una fila del DataGrid y darle a un botón y que la


fila se elimine.
Inicialmente usé esto:

Sub BorraLineaDatagrid(ByVal dg As DataGrid, ByVal dt As


DataTable)
dt.Rows(dg.CurrentRowIndex).Delete()
End Sub

Y funciona perfectamente siempre y cuando el orden del


DataGrid y el de la
Tabla coincidan, pero si el usuario ha ordenado el


DataGrid como puedo hacer
para borrar el elemento??.

Gracias a todos.
.

Preguntas similares