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

Crear instancias de un objeto dinamicamente

Estas en el tema de Crear instancias de un objeto dinamicamente en el foro de .NET en Foros del Web. Hola Estoy creando graficas en asp.net con el control WebChart, para crear las graficas con datos fijos no tengo ningun problema, asi que este codigo ...
  #1 (permalink)  
Antiguo 15/11/2005, 12:56
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Crear instancias de un objeto dinamicamente

Hola

Estoy creando graficas en asp.net con el control WebChart, para crear las graficas con datos fijos no tengo ningun problema, asi que este codigo funciona
Código:
ColumnChart chart = new ColumnChart();
chart.MaxColumnWidth = 10;
chart.Fill.Color = Color.FromArgb(50, Color.Red);
chart.Shadow.Visible = true;
chart.Legend = "Pri 0";
 
ColumnChart chart1 = new ColumnChart();
chart1.MaxColumnWidth = 10;
chart1.Fill.Color = Color.FromArgb(50, Color.Yellow);
chart1.Shadow.Visible = true;
chart1.Legend = "Pri 1";
La linea roja es la encargada de crear una nueva columna en el grafico. pero cuando trato de crear los objetos dinamicamente uso este codigo

Código:
for(int i=0;i <= miDs.Tables[0].Rows.Count -1;i++)
{
ColumnChart columna = new ColumnChart();
columna.MaxColumnWidth=10;
columna.Fill.Color=Color.Blue;
				columna.Legend=miDs.Tables[0].Columns[0].ColumnName.ToString();
columna.Data.Add(new ChartPoint(miDs.Tables[0].Rows[0]["Area"].ToString(),(float)Convert.ToDouble(miDs.Tables[0].Rows[0]["Total"].ToString())));
ChartControl3.Charts.Add(columna);
}
ChartControl3.RedrawChart();
miDs es un dataset que devuelve dos registros, por lo tanto se generan dos columnas

Y hasta cierto punto funciona, pero tengo un problema y es que todos las columnas se crean en base a un mismo objeto(columna), entonces al colocar el titulo en el eje x solo aparece el nombre de la ultima.

Lo que yo quiero hacer es que cada columna se cree con un nombre diferente, asi que trate de hacer esto:
Código:
for(int i=0;i <= miDs.Tables[0].Rows.Count -1;i++)
{
ColumnChart midDs.Tables[0].Rows[i]["Area"] = new ColumnChart();
.
.
.
}
Que pretendia hacer yo en la linea verde, crear cada columna con un nombre diferente, pero no funciono.

Como referencia dejo la web del control:
WebChart

Gracias
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #2 (permalink)  
Antiguo 15/11/2005, 13:27
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Por lo visto me equivoque de foro, alguien me hace el favor de moverlo para webforms.

Gracias
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 15/11/2005, 17:33
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Y si sacas la inicialización del objeto "ColumnChart" fuera del bucle?. De esta forma lo creas una sola vez, y lo único que vas modificando son sus propiedades dentro del bucle, pero no se como te funcionara.

Saludos.!

P.D. A pesar que pediste que te movieran el mensaje, contesté al mismo porque pienso que si bien en tu caso lo aplicas a un web form, no es una pregunta que esté ligada únicamente hacia estos.
__________________
Add, never Remove
  #4 (permalink)  
Antiguo 16/11/2005, 07:44
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Muchas Gracias, por la respuesta ayer le escribi al autor y me soluciono todas las dudas, asi que ya me esta funcionando

__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
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 17:41.