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

Como saber registro actual en un datagrid

Estas en el tema de Como saber registro actual en un datagrid en el foro de .NET en Foros del Web. Que tal, creo que esto es sencillo pero he leido y no encuentro solucion , Tengo un datagrid con 3 templates y 3 campos(Clave, nombre, ...
  #1 (permalink)  
Antiguo 27/05/2005, 11:05
Avatar de Rbkrr  
Fecha de Ingreso: mayo-2002
Ubicación: Tamps. Mx
Mensajes: 277
Antigüedad: 22 años, 9 meses
Puntos: 0
Como saber registro actual en un datagrid



Que tal, creo que esto es sencillo pero he leido y no encuentro solucion ,

Tengo un datagrid con 3 templates y 3 campos(Clave, nombre, departamenteo por ejemplo) en un template puse un boton, en el cual cuando yo le de click muestre informacion referente a ese registro (en este caso a esta persona), la cosa aqui es que no se como tomar o como saber a que registro le di click . ya tengo el evento click de ese boton pero mi objetivo es que ,... cuando le de click a ese registro guarde el nombre en una variable cualquiera... alguien puede decirme como tomo los datos del registro actual?

Gracias de antemano
__________________
:adios:
  #2 (permalink)  
Antiguo 27/05/2005, 11:34
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Que milagro Rbkrr ,

Mira.. no se como tengas la estructura de tu datagrid.. pero si estas usando template columns podría ser así:

Supongamos que tienes la siguiente estructura:

Cita:
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Label Runat=server ID=lblNombre Text='<%# DataBinder.Eval(Container.DataItem,"nombre") %>' />
<asp:Button Runat="server" ID="btn" Text="OK"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>

Entonces como el botón está dentro del datagrid.. al momento de generarse el postback salta el evento itemcommando y para identificar la label que tiene la informacion ("nombre") sería de ésta forma:

Cita:
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string sName = string.Empty;
Label lbl = (Label) e.Item.FindControl("lblNombre");
sName = lbl.Text; //aqui ya tengo la informacion

}
Y listo... ya con eso tienes en tu variable la informacion de la fila que seleccionaste.

Salu2 y cualquier cosa por aqui andamos..
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 27/05/2005, 14:23
Avatar de Rbkrr  
Fecha de Ingreso: mayo-2002
Ubicación: Tamps. Mx
Mensajes: 277
Antigüedad: 22 años, 9 meses
Puntos: 0
Hola RootK!!

uppps!!, pero tengo un problema, estoy programando en vb, como hago para que reconozca el codigo en c (casi no se estas ondas) o como llo usaria en VB :(

Saludos
__________________
:adios:
  #4 (permalink)  
Antiguo 27/05/2005, 15:07
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 20 años, 5 meses
Puntos: 2
En VB el código te quedaría algo así:
Private Sub DataGrid1_ItemCommand(source As object, e As System.Web.UI.WebControls.DataGridCommandEventArgs )
Dim sName As String = ""
Dim lbl As Label = Ctype(e.Item.FindControl("lblNombre"),Label)
sName = lbl.text 'aqui ya tengo la informacion
End Sub

De todas formas recuerda que en las FAQ's hay algo publicado para convertir de c# a vb.net y viceversa.
  #5 (permalink)  
Antiguo 27/05/2005, 16:25
Avatar de Rbkrr  
Fecha de Ingreso: mayo-2002
Ubicación: Tamps. Mx
Mensajes: 277
Antigüedad: 22 años, 9 meses
Puntos: 0
Gracias por contestar!!

Lo que quiero obtener del grid es lo que hay en la columna descripcion, el codigo que se genera en html es el siguiente(me pone BoundColumn en vez de label como el ejemplo):

<asp:BoundColumn ID:des DataField="Description" ReadOnly="True" HeaderText="Description">
<HeaderStyle Width="800px"></HeaderStyle>
</asp:BoundColumn>

No me genera nada de:

<asp:Label Runat=server ID=lblNombre


En donde aparece como ustedes dicen es en el template :

<ItemTemplate>
<asp:Button id="Btt_Accesories" runat="server" Width="8px" Height="16px" BackColor="White" BorderStyle="None" Font-Size="8pt" Font-Names="Tahoma" Font-Bold="True" ForeColor="#006699" Text="A" CommandName="A"></asp:Button>
</ItemTemplate>


aqui(en donde dice button en vez de label) aplique el ejemplo solo que en vez de poner label como ustedes me dijeron lo cambie a button y si funciona me trae el texto que tengo en el Button, pero aun sigo igual no puedo traerme lo que esta en description(que es la cuarta fila del grid :( ).

espero quieran seguir ayudandome :D
__________________
:adios:
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 12:39.