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

construcción de una aspTable dinámicamente

Estas en el tema de construcción de una aspTable dinámicamente en el foro de .NET en Foros del Web. Hola, tengo un problema desde hace unos días y por más que intento no consigo que funcione. Estoy haciendo una web en asp.net con C#. ...
  #1 (permalink)  
Antiguo 01/09/2005, 13:06
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
construcción de una aspTable dinámicamente

Hola, tengo un problema desde hace unos días y por más que intento no consigo que funcione. Estoy haciendo una web en asp.net con C#.
Mi promosito es conseguir hacer un aspTable que tengo en un control usuario web (fotos.ascx.cs) cargue otro control usuario web (visualizadorfotos.ascx.cs) en cada celda de mi aspTable. El problema es que no se me carga nada, al final se queda la página index.aspx en blanco (aclarandolo un poco más, en mi index.aspx tengo un aspPanel llamado pnlContenido que es lo que se queda vacío. En definitiva utilizo paneles a forma de marcos... por así decirlo)

Os pongo aquí el código, si no me explicado bien me avisaís y vuelvo a intentarlo. Ah!! todo esto lo hago a medida de hacer un album de fotos para mi web... por lo que si teneís mejores ideas para hacerlo...

Aquí os dejo el código:

---fotos.ascx.cs-------
Código PHP:
public class Fotos System.Web.UI.UserControl
    
{
        protected 
System.Web.UI.WebControls.Table tblAlbum;

        private 
int idioma=0;
        private 
int numeroColumnas;
        private 
int totalElementos;

        
#region Propiedades

        /// <summary>
        /// Propiedad que establece el número de columnas que queremos por fila
        /// </summary>
        
public int NumeroColumnas
        
{
            
set
            
{
                
this.numeroColumnas value;
            }
            
get
            
{
                return 
this.numeroColumnas;
            }
        }

        
/// <summary>
        /// Propiedad que establece el número total de tuplas de la Tabla FOTOS.
        /// </summary>
        
public int TotalElementos
        
{
            
set
            
{
                
this.totalElementos value;
            }
            
get
            
{
                return 
this.totalElementos;
            }
        }

        public 
int Idioma
        
{
            
set
            
{
                
this.idioma=value;
            }
            
get
            
{
                return 
this.idioma;
            }
        }

        
#endregion

        
private void Page_Load(object senderSystem.EventArgs e)
        {        

            if (!
Page.IsPostBack
                
this.CargaContenido();                
            else
                
this.Reload();            
            
        }

        private 
void CargaContenido()
        {
            
AccesoBD.SQL bd = new colegioWeb.AccesoBD.SQL();
            
System.Data.DataTable tabla=null;
            
System.Data.DataRow datafila=null;
            
            
tablabd.GetFotosCastellano();    
        
            if(
tabla!=null)
            {
                
int celdastabla.Rows.Count;
                
this.NumeroColumnas 4;
                
int filas celdas this.NumeroColumnas;
                    
                if((
celdas  this.NumeroColumnas)!=0)
                    
filas++;

                
int j 0;
                
int k 0;
                for (
int i 0filasi++)
                {                    
                    
TableRow r = new TableRow();
                    
//for(int j = 0; j<celdas; j++)
                    
while ( celdas//nos movemos por las celdas
                    
{
                        
//for(int k = 0;k< tabla.Rows.Count;k++)
                        
foreach(DataRow fotos in tabla.Rows)
                        {
                            
TableCell c = new TableCell();    

                            
VisualizadorFotos visualizador = (VisualizadorFotos)this.LoadControl("VisualizadorFotos.ascx");
                            
visualizador.Fotos fotos;

                            
c.Controls.Add(visualizador);
                            
r.Cells.Add(c);    
                            
                            
j++;
                        }
                                                        
                    }
                    
this.tblAlbum.Rows.Add(r);
                }
            }
        }

        private 
void Reload()
        {
            
this.Controls.Clear();
            
this.CargaContenido();

        } 
---visualizadorfotos.ascx.cs-------
Código PHP:
public class VisualizadorFotos System.Web.UI.UserControl
    
{
        protected 
System.Web.UI.WebControls.Image imgFoto;
        protected 
System.Web.UI.WebControls.Label lbTitulo;
        protected 
System.Web.UI.WebControls.HyperLink hpEnlace;
        protected 
System.Web.UI.WebControls.Table tblFotos;

        private 
DataRow fotos;

        public 
DataRow Fotos
        
{
            
set
            
{
                
this.fotos=value;
            }
            
get
            
{
                return 
this.fotos;
            }
        }
        
        private 
void Page_Load(object senderSystem.EventArgs e)
        {
            
// Introducir aquí el código de usuario para inicializar la página
            
if(this.fotos!=null)
            {                
                
this.lbTitulo.Text this.fotos["titulo"].ToString();    
                
                
string ruta "../" this.fotos["enlace"].ToString();
                
                
this.imgFoto.ImageUrlruta;
                
this.imgFoto.Width= new Unit("100px");
                
this.imgFoto.Height= new Unit("85px");

                
this.hpEnlace.NavigateUrl ruta;
                
this.hpEnlace.ToolTip this.fotos["descripcion"].ToString();
                                
            }
        } 
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 00:34.