c# - recomendaciones - porque se dañan las tablas en mysql
bucle foreach para recuperar elementos de la lista y crear una tabla (3)
Construir su tabla utilizando algo así como el control Table sería mucho más ordenado y fácil de mantener.
<asp:Table ID="MyTable" runat="server" />
Luego, en su código compile los datos usando los objetos TableRow y TableCell.
Estoy un poco confundido sobre cómo mostrar los datos de la lista en dos columnas en una parte web.
Esto es lo que tengo en este momento (Webpart):
<table width="100%">
<tr>
<td width="50%">
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</td>
<td width="50%">
<asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>
</td>
</tr>
</table>
y el código detrás para esto es el siguiente:
foreach (SPListItem oListItem in listItemCollection)
{
awardYear = oListItem["Year"].ToString();
awardCategory = oListItem["Category"].ToString();
awardOrganiser = oListItem["Organiser"].ToString();
//awardNomWon = oListItem["NominatedWon"].ToString(); //not yet needed
//need to fingure out how to display images:
//awardLogo = oListItem["Logo"].ToString();
//string mydatetime;
//mydatetime = new DatTime(awardYear).ToString;
//DateTime convertedaValue = DateTime.Parse(awardYear);
//string awardYearConverted = convertedaValue.ToString();
PlaceHolder1.Controls.Add(
new LiteralControl(awardYear + " " + "|" + "<br/> " +
awardCategory + " " + "|" + "<br/> " +
awardOrganiser + " " + "|" + "<br/><br/>"));
PlaceHolder2.Controls.Add(
new LiteralControl(awardYear + " " + "|" + "<br/> " +
awardCategory + " " + "|" + "<br/> " +
awardOrganiser + " " + "|" + "<br/><br/>"));
/*
PlaceHolder2.Controls.Add(
new LiteralControl("<table><tr><td>" + awardYear + "</td>" +
"<td> </td>" + "<td>" +
awardCategory + "<br/>" +
awardOrganiser + "</td></tr>" ));
*/
}
Lo que intento lograr es escribir los detalles de una lista de "Premios" y mostrarlos en dos columnas. Actualmente todo funciona, pero el problema es que los datos se repiten en colum1 y column2 de la tabla. Idealmente, esperaba que el "foreach" crearía la tabla y la poblaría con los detalles de la lista.
Quizás haya algo que me he perdido, pero realmente no puedo ver lo que podría ser. Cualquier sugerencia será muy apreciada.
No hay nada que describa en el bucle en qué lado de la tabla desea que esté la información, por lo que le sugiero esto con su bucle
int modCounter = 0;
foreach (SPListItem oListItem in listItemCollection)
{
modCounter += 1;
awardYear = oListItem["Year"].ToString();
awardCategory = oListItem["Category"].ToString();
awardOrganiser = oListItem["Organiser"].ToString();
if(modCounter % 2 == 0) // If modCounter is divisible by 2 (ie even)
{
// Add information that goes in first column
}
else
{
// Add information that goes in second column
}
}
Utilice la propiedad Filas de System.Web.UI.WebControls.Table . Significa eliminar su marcado HTML y utilizar el control web Table.