Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/01/2010, 13:02
Avatar de triqui
triqui
 
Fecha de Ingreso: diciembre-2008
Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 15 años, 4 meses
Puntos: 31
Respuesta: bd asp.net Modificar

Hola de nuevo, bueno te digo lo que haría yo.

Tienes dos páginas: primerapagina.aspx y segundapagina.aspx

en la primerapagina.aspx tienes un gridview con el listado de unos productos.

Así sería el codebehind:

Código:
protected void Page_Load(object sender, EventArgs e)
    {

  DataTable dtProductos = new DataTable();
  dtProductos.Columns.Add("idproducto");
dtProductos.Columns.Add("NombreProducto");

DataRow Row = dtProductos.NewRow();
Row[0] = “1”;
Row[1] = “judias”;
dtProductos.Rows.Add(Row);

GridviewProductos.DataSource = dtProductos.DefaultView;
GridviewProductos.DataBind();

}
    public string ComponerUrl(string IdCodigo)
    {
         
      //Compones cada fila con una url distina 
para pasarle el codigo del producto que luego recogeras 
en la segunda página
//Esto lo puedes meter en el modo diseño,
 pero te aconsejo que lo hagas aquí porque
 aquí podrás llamar a una clase que lo encripte 
en el caso que quieras encriptar el código, el
 nombre o lo que vayas a pasarle.
Recuerda que esta función la llamas desde el 
gridview que te muestro a continuación


        return "~/segundapagina.aspx?id_proc =" + IdCodigo;

    }
Y el siguiente código es como debes mostrar el gridview de la primerapagina.aspx:

Código:
<asp:GridView ID="GridviewProductos" runat="server" >
                                                                   

<Columns>

   <asp:TemplateField HeaderText="Nombre" 

ItemStyle-HorizontalAlign="Center" 
HeaderStyle-HorizontalAlign="Left" >
                    <ItemTemplate>
                        <asp:Label ID="LblNombreproducto" 
                        runat="server" Text='<%# 
 

Eval("NombreProducto") %>'></asp:Label>    
               
                    </ItemTemplate>               

<HeaderStyle HorizontalAlign="Left"></HeaderStyle>

<ItemStyle HorizontalAlign="Left"></ItemStyle>
                </asp:TemplateField>
                
             
                
              

                 <asp:TemplateField HeaderText="Ir" 

ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" >
 <ItemTemplate>
       <asp:ImageButton runat="server" ID="ImgIr" 
 ImageUrl="~/Botones/Ir.png" 
 CommandName="image"  PostBackUrl='<%# ComponerUrl 
(DataBinder.Eval(Container, "DataItem.idproducto").ToString()) %>'
           ToolTip="Ir al producto" />
       </ItemTemplate>
       <HeaderStyle HorizontalAlign="Center"></HeaderStyle>

<ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
                
               
                </Columns>
               
 </asp:GridView>

Lo que acabas de hacer es mostrar los productos, tienes dos items en el gridview, un label que te muestra el nombre del producto y un botón que te mandará a otra página con más información de ese producto.

Pues en el codebehind de segundapagina.aspx harias esto:

Código:
protected void Page_Load(object sender, EventArgs e)
    {

//recoges el Id que le pasas por URL
string IdProducto = Server.UrlDecode(Request.QueryString["id_proc"].ToString());

//aquí recibes el Id del Producto, 
ahora haces un select con ese de Id Producto a la 
base de datos y recibes los datos de ese producto 
y lo muestras en los textbox,combos,gridviews que
 te montes en la segunda página.

}
Suerte
__________________
La nueva red social de quinielas quiniela resultados
Cazaresultados Futbol base en directo

Última edición por triqui; 21/01/2010 a las 13:15