Foros del Web » Programación para mayores de 30 ;) » .NET »

Eliminar fila en Datagrid

Estas en el tema de Eliminar fila en Datagrid en el foro de .NET en Foros del Web. Hola, a ver si m podeis ayudar. TEngo un datagrid q muestra una serie de registros de una tabla He añadido una columna de plantilla ...
  #1 (permalink)  
Antiguo 27/04/2005, 08:18
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Eliminar fila en Datagrid

Hola, a ver si m podeis ayudar.
TEngo un datagrid q muestra una serie de registros de una tabla He añadido una columna de plantilla
en la q en cada fila tengo un botón con el texto Eliminar para que si el usuario pulsa ese botón
se elimine la fila correspondiente en la base de datos. Mi duda es q cada fila tiene asociada una clave pero
esa clave yo no la muestro en el datagrid. Entonces a la hora de eliminar cada fila como puedo hacer el "delete"?,
o sea en el "where" del "delete" como lo haría o q podría utilizar para identificar la fila a borrar.

Gracias.
  #2 (permalink)  
Antiguo 27/04/2005, 08:47
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
No sería mas fácil guardar en el DataKeyField el campo llave para despues recuperlarlo.

ejemplo:

<asp:datagrid id="DataGrid1" runat="server" DataKeyField="CampoID">
...
...

y desde codigo cuando hagas el update, delete..etc sería:

Cita:

campoID = DataGrid1.DataKeys(e.Item.ItemIndex)
...
sSQL = "Delete from tabla where campoID = " & campoID
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 27/04/2005, 10:13
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Muchas gracias RootK, no m daba cuenta d usar DataKeyField n l Datagrid.

Un saludo.
  #4 (permalink)  
Antiguo 27/04/2005, 12:00
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago Chile
Mensajes: 119
Antigüedad: 19 años, 7 meses
Puntos: 0
Hola RootK
Que es eso del DatakeyField, como funciona ???
me suena a que es bueno :)
que alguien me diga !!!!
  #5 (permalink)  
Antiguo 27/04/2005, 12:06
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Que es eso del DatakeyField, como funciona ???
De hecho es una propiedad donde asignas el nombre de tu campo llave, para posteriormente utilizarlo conforma tus necesidades.

Salu2
  #6 (permalink)  
Antiguo 27/04/2005, 12:46
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Hola

Rootk staba probando el código de eliminar filas y al ejecutar me sale el error
"DataBinder.Eval: 'System.Data.Common.DbDataRecord' no contiene una propiedad con el nombre idprecliente".
Entonces comenté lo correspondiente a eliminar la fila y dejé solo el page_load con el código inicial
q tenía de cargar los datos n l datagrid y
me los carga bien pero si pongo en l datagrid n l html
DataKeyField="idprecliente" m da tb este error que te he puesto.
Parece q es como si no conociera l campo/la variable.
Alguna idea?
  #7 (permalink)  
Antiguo 27/04/2005, 13:01
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Como tienes tu grid (modo html)
  #8 (permalink)  
Antiguo 27/04/2005, 13:41
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Ahí va. Y cómo se hace eso en lo q soleis pegar el código? no veo a priori ninguna opción por akí.

<asp:datagrid id="dgpreclientes" style="Z-INDEX: 101; LEFT: 25px; POSITION: absolute; TOP: 187px" runat="server" AllowCustomPaging="True" BackColor="White" BorderWidth="1px" BorderStyle="None" AllowPaging="True" cellpadding="4" bordercolor="#3366CC" AutoGenerateColumns="False"
Width="100%" DataKeyField="idprecliente">

<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<EditItemStyle BackColor="White"></EditItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
<FooterStyle ForeColor="#003399" BorderColor="Transparent" BackColor="#99CCCC"></FooterStyle>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button id="Button1" runat="server" CommandName="Delete" Text="Eliminar"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="apellidos" HeaderText="Apellidos"></asp:BoundColumn>
<asp:BoundColumn DataField="nombre" HeaderText="Nombre"></asp:BoundColumn>
<asp:BoundColumn DataField="telefono1" HeaderText="Teléfono"></asp:BoundColumn>
<asp:BoundColumn DataField="telefono2" HeaderText="Móvil"></asp:BoundColumn>
<asp:BoundColumn DataField="email" HeaderText="Email"></asp:BoundColumn>
<asp:BoundColumn DataField="observaciones" HeaderText="Consulta"></asp:BoundColumn>
</Columns>

<PagerStyle NextPageText="Avanzar" PrevPageText="Retroceder" HorizontalAlign="Left" ForeColor="#003399" Position="TopAndBottom" BackColor="#99CCCC"></PagerStyle>
</asp:datagrid>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:44.