Adding
dynamically between controls asp.net

2019-01-25 01:22发布

问题:

I'm listing some controls at my web page dynamically, either I'm adding newline with Label's.

Label newLine = new Label();newLine.Text = "<br/>"; myPanel.Controls.Add(newLine);

How can I do it in a different way?

回答1:

myPanel.Controls.Add(new LiteralControl("<br />"));


回答2:

I would suggest that you don't use
at all. Use CSS to display your controls. display:block on your elements will work just fine. Less messy!



回答3:

My problem: Add a text to a panel indicating a date range. The text should be placed below an hyperlink.

The CSS solution:

A. Create the CSS class (place it on your page or into a CSS file)

.dateRange
{
    display:block;
}

B. Create controls and set the proper CSS class (.CssClass property)

//1. Create the link
LinkButton _btnTitle = new LinkButton();
_btnTitle.Text = Request.QueryString["name"];
_btnTitle.OnClientClick = "history.go(-1); return false;";
_btnTitle.ToolTip = Request.QueryString["name"];
_btnTitle.CssClass = "title";

//2. Add the link to the container
pnlFindTech.Controls.Add(_btnTitle);  

//3. Create the label (text)    
Label lblDate = new Label();
lblDate.Text = " [ From " + txtDateFrom.Text + " To " + txtDateTo.Text + " ] ";
lblDate.CssClass = "dateRange"; //Here is the trick

//4. Add the label to the container
pnlFindTech.Controls.Add(lblDate);

The final output looks like the this:

Sources:

  • CSS display Property (w3schools)

  • Example (w3schools)