Frage

Dies ist der Code unten in Code hinter Page_Load Ereignisse der Datei:

        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);

Ich möchte einen Zeilenumbruch zwischen den einzelnen Steuer erzeugt wird.

War es hilfreich?

Lösung

Lösung Ihres Zeilenumbruch Problem ist unten jedoch, wenn Sie dies in dem Ereignisse Page Load tun, dann Ihrem Event-Handler wird nicht funktionieren und Ihr in Seite Life Cycle Probleme gehen laufen. Im Grunde genommen, um für Ihre Event-Handler auf Postback zu schießen, die Sie wirklich brauchen diese dynamischen Kontrollen früher im Lebenszyklus der Seite zu erschaffen. Versuchen Sie, Ihren Code an die OnInit Methode zu bewegen, wenn Sie in dieses Problem haben.

    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);

Andere Tipps

Eine andere Lösung ist, dass Sie jede Kontrolle eines Panel hinzufügen könnte, die sie jeweils in einem <div> machen wird in der Wirkung führt, die Sie suchen.

Für mich wäre dynamischer denn wenn Sie eine der Kontrollen verstecken die div kollabieren und lassen keine Leerzeilen.

    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);

Gewusst wie: Hinzufügen von Steuerelementen zu einer ASP.NET-Seite Programmatically

  

In einigen Fällen möchten Sie vielleicht   Erstellen sowohl statischen Text und Kontrollen.    statischen Text erstellen, können Sie entweder ein Literal oder ein Label-Webserver   Kontrolle . Sie können dann diese   steuert auf den Behälter, wie Sie es   andere Kontrolle. Zur Information   über Anzeigestatus in Kontrollen geschaffen   zur Laufzeit finden Sie unter Dynamische Web-Server   Bedienelemente und Anzeigestatus.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top