ASP.NET - Como coger datos de un datagrid para eliminar uno

 
Vista:

Como coger datos de un datagrid para eliminar uno

Publicado por javi (1 intervención) el 16/08/2007 18:52:27
Hola a todos,

Estoy intentando eliminar datos de un datagrid pero no consigo hacerlo.
El datagrid lo lleno a partir de un xml que creo en un metodo y lo que quiero es cuando pincho sobre el boton borrar pues eliminar ese elemento.
Este es el codigo que tengo:

En la clase tengo definidos estos atributos:

Public Filtro_DataSet As New DataSet
Public xml As New System.Xml.XmlDocument
Public xmlNuevoNodo As System.Xml.XmlElement
Public XmlFiltro_StringReader As System.IO.StringReader

Metodo que general el xml y rellena el datagrid:

Private Sub GenerarFilaEnTablaEquipos(ByVal nif As String, ByVal nombre As String)

'Cargamos el xml que ya teniamos
Me.xml.LoadXml(ViewState("XmlFiltro_String"))

Me.xmlNuevoNodo = xml.CreateElement("Row")

Me.xmlNuevoNodo.InnerXml = "<NIF>" & _
nif & "</NIF><USUARIO>" & _
nombre & "</USUARIO>"
'Agregamos el xml
Me.xml.DocumentElement.AppendChild(xmlNuevoNodo)
ViewState("XmlFiltro_String") = Me.xml.InnerXml
'leemos el xml y lo cargamos en un dataset
Me.XmlFiltro_StringReader = New System.IO.StringReader(Me.xml.InnerXml)
Me.Filtro_DataSet.ReadXml(Me.XmlFiltro_StringReader AYUDAS.HTML.RellenarListado(TablaEquipos_Datagrid, Me.Filtro_DataSet.Tables(0))

End Sub

Metodo para eliminar del datagrid:

Protected Sub Filtro_DataGrid_Delete(ByVal source As Object, ByVal e As

System.Web.UI.WebControls.DataGridCommandEventArgs)
Dim fila As Integer = CInt(e.Item.ItemIndex)
Dim data As DataSet = Me.Filtro_DataSet
Me.Filtro_DataSet.Tables(0).Rows(fila).Delete()
AYUDAS.HTML.RellenarListado(TablaEquipos_Datagrid, Filtro_DataSet.Tables(0))

End Sub

Pero se ve que Me.Filtro_DataSet esta vacio cuando lo utilizo en este metodo.

En el HTML tengo esto:

<asp:datagrid EnableViewState="True" HeaderStyle-HorizontalAlign="center" HeaderStyle-Font-Bold="True" GridLines="None" BorderStyle="None" id="TablaEquipos_Datagrid" runat="server" ShowHeader="True" AutoGenerateColumns="False" OnDeleteCommand="Filtro_DataGrid_Delete">
<Columns>
<asp:BoundColumn ItemStyle-Width="180px" ItemStyle-HorizontalAlign="center" DataField="NIF" HeaderText="Nif del empleado"></asp:BoundColumn>
<asp:BoundColumn ItemStyle-Width="200px" ItemStyle-HorizontalAlign="center" DataField="USUARIO" HeaderText="Apellidos y Nombre"></asp:BoundColumn>
<asp:TemplateColumn ItemStyle-Width="150px" ItemStyle-HorizontalAlign="center" HeaderText="Empleado Lider">
<ItemTemplate>
<asp:RadioButton id="radiobuttonlider" GroupName="listaradiobuttonlider" Runat="server" /></ItemTemplate></asp:TemplateColumn>
<asp:TemplateColumn ItemStyle-Width="150px" ItemStyle-HorizontalAlign="center" HeaderText="Quitar del equipo">
<ItemTemplate>
<asp:ImageButton id="Borrar_ImageButton" runat="server" ImageUrl="../../IMAGENES/iconos/trash.gif" CommandName="Delete" /></ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>

Y finalmente este es el error que me sale:

Cannot find table 0.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IndexOutOfRangeException: Cannot find table 0.

Source Error:

Line 393: HttpContext.Current.Response.Write(data.Tables(0).Rows(fila))

Espero sepan ayudarme.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder