Foros del Web » Programando para Internet » ASPX (.net) »

Envio de variables por DataGrid

Estas en el tema de Envio de variables por DataGrid en el foro de ASPX (.net) en Foros del Web. hola amigos, estoy listando registros con el datagrid, y quiero ke desde el codigo del registro me envie a otra pagina eviando ese codigo mediante ...
  #1 (permalink)  
Antiguo 08/01/2007, 16:13
 
Fecha de Ingreso: diciembre-2004
Mensajes: 133
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta Envio de variables por DataGrid

hola amigos,

estoy listando registros con el datagrid, y quiero ke desde el codigo del registro me envie a otra pagina eviando ese codigo mediante una variable. quiero ke me funcione tipo maestro-detalle.

Hasta ahora solo he podido colocar una columna tipo Hipervinculo y lo enlazo con otra pagina,pero me falta enviar la variable co el codigo ke he seleccionado.

Agradecere sus sugerencias.
__________________
Mina
  #2 (permalink)  
Antiguo 08/01/2007, 16:34
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Envio de variables por DataGrid

Que tal Yes.

En el HTML, en tu datagrid o datalist, pones algo como lo siguiente:
Código:
<asp:datalist id="dlDatos" runat="server" DataKeyField="IdMaestro">
...
...
							
<td nowrap>
	<asp:linkbutton ID="lnkEditItem" commandName="EditItemCommand"
                    Text='Ver Detalle' 
             runat="server"  />
</td>
....
Es muy importate la propiedad DataKeyField, su valor es el enlace entre maestro y detalle, es el nombre de un campo de tu datatable.

El linkbutton es la liga que nos envía a la otra página.

Y el en codebehind:
Código:
		private void dlDatos_ItemCommand(object source, DataListCommandEventArgs e)
		{
			string lstId; 
			if ((e.CommandName == "EditItemCommand")) 
			{ 
				lstId= (string)dlDatos.DataKeys[e.Item.ItemIndex];  // lectura de Id de enlace Maestro-detalle
				Response.Redirect("uDetalle.aspx?pnuId=" + lstId, true); 
			}
		}
Y finalmente en uDetalle.aspx, lo lees como ya conoces.

lstId= Request["pnuId"]

Pruebaló y nos comentas.

Saludos y suerte!!
  #3 (permalink)  
Antiguo 08/01/2007, 17:07
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Envio de variables por DataGrid

Hola Yes.

La forma del mensaje anterior es por si quieres efectuar otras tareas antes de redireccionar a la página de detalle.

Otra manera de hacerlo es con un link común y corriente (control html, <A>), como sigue:
Código:
....
<TD>
    <A href='uDetalle.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "Id") %>'><%# DataBinder.Eval(Container.DataItem, "Descipcion") %>
    </A>
</TD>
....
Saludos!
  #4 (permalink)  
Antiguo 08/01/2007, 21:25
 
Fecha de Ingreso: diciembre-2004
Mensajes: 133
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Envio de variables por DataGrid

Amiguito, aun no me sale. aki tengo el codigo de mi datagrid:

<asp:datagrid id="dg_SolSopTec" runat="server" Width="588px" Height="2px" AutoGenerateColumns="False" AllowPaging="True" DataKeyField="fst_cod">
<FooterStyle Font-Names="Arial" ForeColor="Navy"></FooterStyle>
<ItemStyle Font-Size="10pt" Font-Names="Arial" BackColor="WhiteSmoke"></ItemStyle>
<HeaderStyle Font-Size="10pt" Font-Names="Arial" Font-Bold="True" Wrap="False" HorizontalAlign="Center"
ForeColor="Desktop" BackColor="#FFC080"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="fst_cod" HeaderText="Cod">
<HeaderStyle Width="1cm"></HeaderStyle>
</asp:BoundColumn>
<asp:ButtonColumn DataTextField="fst_cod" HeaderText="ID" CommandName="Select">
<HeaderStyle Width="1cm"></HeaderStyle>
<ItemStyle Font-Size="10px" Font-Names="Arial"></ItemStyle>
</asp:ButtonColumn>
<asp:HyperLinkColumn Target="_blank" DataTextField="fst_cod" HeaderText="ID-enlace" NavigateUrl="/egesur_net/1SolSopTecnico/SolSopTecnico1_Detalle.aspx"></asp:HyperLinkColumn>
<asp:BoundColumn DataField="fst_nom" HeaderText="Nombre">
<HeaderStyle Width="3cm"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="fst_des" HeaderText="Descripción">
<HeaderStyle Width="4cm"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="fst_est" HeaderText="Estado">
<HeaderStyle Width="2cm"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="fecha" HeaderText="Fecha In">
<HeaderStyle Width="2cm"></HeaderStyle>
</asp:BoundColumn>
</Columns>
<PagerStyle Font-Size="9pt" Font-Names="Arial" BackColor="WhiteSmoke" Mode="NumericPages"></PagerStyle>
</asp:datagrid>

*--------------------------------------------
Y en la parte del vb


Private Sub dg_SolSopTec_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles dg_SolSopTec.ItemCommand

Dim lstId As String
If ((e.CommandName = "EditItemCommand")) Then
lstId = Str(dg_SolSopTec.DataKeys(e.Item.ItemIndex)) 'lectura de Id de enlace Maestro-detalle
Response.Redirect("/egesur_net/1SolSopTecnico/SolSopTecnico1_Detalle.aspx?pnuId=" + lstId, True
End If )


End Sub

No sep ke me este faltando
__________________
Mina
  #5 (permalink)  
Antiguo 09/01/2007, 10:01
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Envio de variables por DataGrid

Hola Yes.

Intenta cambiando las líneas de tu código:
Código:
<asp:HyperLinkColumn Target="_blank" DataTextField="fst_cod" HeaderText="ID-enlace" NavigateUrl="/egesur_net/1SolSopTecnico/SolSopTecnico1_Detalle.aspx"></asp:HyperLinkColumn>
Por el siguiente fragmento:
Código:
<asp:linkbutton ID="lnkEditItem" commandName="EditItemCommand"
  Text='<%# DataBinder.Eval(Container.DataItem, "fst_cod")%>' 
  runat="server"  />
Saludos y suerte!!
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 03:03.