asp.net - saltos - salto de linea pequeño html
¿Cómo crear saltos de línea entre etiquetas generadas dinámicamente en un marcador de posición? (3)
Este es el código a continuación en el código detrás del evento Page_Load
del archivo:
LinkButton linkButton = new LinkButton();
linkButton.ID = "LinkButtonDynamicInPlaceHolder1Id" + i;
linkButton.ForeColor = Color.Blue;
linkButton.Font.Bold = true;
linkButton.Font.Size = 14;
linkButton.Font.Underline = false;
linkButton.Text = itemList[i].ItemTitle.InnerText;
linkButton.Click += new EventHandler(LinkButton_Click);
linkButton.Attributes.Add("LinkUrl",itemList[i].ItemLink.InnerText);
PlaceHolder1.Controls.Add(linkButton);
Label label = new Label();
label.ID = "LabelDynamicInPlaceHolder1Id" + i;
label.ForeColor = Color.DarkGray;
label.Text = itemList[i].ItemDescription.InnerText;
PlaceHolder1.Controls.Add(label);
Quiero un salto de línea entre cada control generado.
La solución a su problema de salto de línea se encuentra a continuación, sin embargo, si está haciendo esto en el evento Page_Load, sus controladores de eventos no funcionarán y se encontrará con problemas en el ciclo de vida de la página. Básicamente, para que los controladores de eventos se activen en PostBack, realmente necesita crear estos controles dinámicos en una etapa más temprana del ciclo de vida de la página. Intente mover su código al método OnInit si se encuentra con este problema.
LinkButton linkButton = new LinkButton();
linkButton.ID = "LinkButtonDynamicInPlaceHolder1Id" + i;
linkButton.ForeColor = Color.Blue;
linkButton.Font.Bold = true;
linkButton.Font.Size = 14;
linkButton.Font.Underline = false;
linkButton.Text = itemList[i].ItemTitle.InnerText;
linkButton.Click += new EventHandler(LinkButton_Click);
linkButton.Attributes.Add("LinkUrl",itemList[i].ItemLink.InnerText);
PlaceHolder1.Controls.Add(linkButton);
//Add This
PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
Label label = new Label();
label.ID = "LabelDynamicInPlaceHolder1Id" + i;
label.ForeColor = Color.DarkGray;
label.Text = itemList[i].ItemDescription.InnerText;
PlaceHolder1.Controls.Add(label);
Otra solución es que podría agregar cada control a un Panel, lo que los convertirá en un <div>
dando como resultado el efecto que está buscando.
Para mí, esto sería más dinámico porque si ocultas alguno de los controles, el div colapsará y no dejará líneas vacías.
LinkButton linkButton = new LinkButton();
linkButton.ID = "LinkButtonDynamicInPlaceHolder1Id" + i;
linkButton.ForeColor = Color.Blue;
linkButton.Font.Bold = true;
linkButton.Font.Size = 14;
linkButton.Font.Underline = false;
linkButton.Text = itemList[i].ItemTitle.InnerText;
linkButton.Click += new EventHandler(LinkButton_Click);
linkButton.Attributes.Add("LinkUrl",itemList[i].ItemLink.InnerText);
//Add control to a panel, add panel to placeholder
Panel lbPan = new Panel();
lbPan.Controls.Add(linkButton);
PlaceHolder1.Controls.Add(lbPan);
Label label = new Label();
label.ID = "LabelDynamicInPlaceHolder1Id" + i;
label.ForeColor = Color.DarkGray;
label.Text = itemList[i].ItemDescription.InnerText;
//Add control to a panel, add panel to placeholder
Panel lblPan = new Panel();
lblPan.Controls.Add(label);
PlaceHolder1.Controls.Add(lblPan);
Cómo agregar controles a una página web ASP.NET mediante programación
En algunos casos, es posible que desee crear tanto texto estático como controles. Para crear texto estático, puede utilizar un control de servidor Literal o Label Web . Luego puede agregar estos controles al contenedor como lo haría con cualquier otro control. Para obtener información sobre el estado de la vista en los controles creados en tiempo de ejecución, consulte Controles del servidor web dinámico y Estado de vista.