2009-04-28 13 views
6

Próbuję dynamicznie dodawać wyniki do tego ekranu i po prostu chcę umieścić znacznik przerwy po etykiecie, aby rozpocząć umieszczanie informacji w następnej linii. Z jakiegoś powodu używanie literału nie działa dla mnie. Czy jest lepszy sposób to zrobić, czy powinienem użyć tabel?Wstawianie tagu <br /> programowo (VB.NET)

Dim break As LiteralControl 
break = New LiteralControl("<br />") 
divListenerInfo.Controls.Add(break) 

Jest to część kodu, którego próbuję użyć.


Pozwól mi wyjaśnić, co powiedziałem:

To nie działa tak, jak w linii podziału nie pojawia się na stronie. Kompiluje się dobrze i nie ma w tym nic złego. Po prostu nie pojawia się w html z jakiegoś dziwnego powodu.

+0

Dlaczego nie dodać kolejną etykietę, lub dołączyć poprzednią label.txt z przerwą? – madcolor

+0

Nie wiem VB.NET, ale przerwa jest zarezerwowanym słowem w języku C#. Czy otrzymujesz ostrzeżenie kompilatora, aby go użyć? –

+0

madcolor: Niezły pomysł. Out Into Space: No. – Paxenos

Odpowiedz

14

Właściwa kontrola do wykorzystania jest HtmlGenericControl.

Dim br As New HtmlGenericControl("br") 

Można użyć HtmlGenericControl do renderowania dowolnego elementu HTML, który chcesz, po prostu przekazać nazwę tagu elementu jako pojedynczy argument do konstruktora.

+0

Cool! Nie był wcześniej świadomy HtmlGenericControl. Dzięki. – Cyberherbalist

+0

To też nie działa. Tag break pojawia się nigdzie w html. – Paxenos

+0

Wygląda na to, że nowe formanty, które tworzysz, nie są dodawane do kolekcji ControlCollection strony. Powinieneś zweryfikować, że sama kontrolka jest rzeczywiście dodawana. –

2

Dlaczego po prostu nie użyć innej etykiety lub dołączyć <br> do poprzedniego pliku label.txt?

+0

To działa. Dzięki – Paxenos

+0

Głosowanie Andrew +1, ponieważ uważam, że ma bardziej odpowiednie rozwiązanie czystsze. – madcolor

1

Nie jestem pewien, czy przerwa to słowo również w VB.NET rezerwa więc spróbuj

Dim newline = New LiteralControl("<br>") 

lub

newline.Text="<br>"; 
+0

Zmieniłem nazwę zmiennej, aby się upewnić i nic nie zmieniłem. – Paxenos

+0

zaktualizowano o nowe rozwiązanie – TStamper

2

Jeśli dodany
jest ostatnim elementem w pojemniku div, nie widać żadnej różnicy.

można spróbować:

Dim breakTag As LiteralControl 
breakTag= New LiteralControl("<br />&nbsp;") 
divListenerInfo.Controls.Add(breakTag) 

zobaczyć przerwę.

Ale myślę, że powinieneś najpierw dodać niepoprawny tekst do tego dosłownie i wyszukać go na swojej stronie, jeśli zostanie dodany. ponieważ twój kod wygląda dobrze.

+0

Umieściłem kilka ogólnych tekstu w LiteralControl i wyświetla się tylko 2 z 10 razy w html. Jakaś wskazówka, dlaczego tak jest? Przeszedłem przez to i linia kodu została trafiona, ale nic z tego nie wynika. – Paxenos

0

Chciałbym spróbować przejść przez kod za pomocą debuggera, aby upewnić się, że linia zostanie trafiona, a także potrójnie sprawdzić, czy divListenerInfo jest właściwym sterowaniem.

0

Myślę, że używasz panelu lub symbolu zastępczego.

vb.net lub C# .net składnia:

divListenerInfo.Controls.Add(New LiteralControl("<br>")) 
+1

Wątpię, by pozostawianie "/" na zewnątrz zmieniło się bardzo i może przerwać jego stronę ... czy może odpowiedziałeś przed przeczytaniem całej strony? –

2


Wiem, że to ożywienie starego posta ale nie widzę żadnej jasnej odpowiedzi, a ja w końcu zorientowaliśmy się dla własnej aplikacji. Mam nadzieję, że pomaga komuś innemu!
W mojej aplikacji próbowałem raz utworzyć kontrolkę i dodać ją ponownie tam, gdzie jej potrzebowałem. Kontrola byłaby tworzona tylko raz na rodzica.
Musisz utworzyć nowy kontrolek za każdym razem, gdy go potrzebujesz!
Więc tak:

divListenerInfo.Controls.Add(New LiteralControl("&lt;br />")) 
divListenerInfo.Controls.Add(New LiteralControl("&lt;br />")) 

Zamiast tego

Dim breakTag As LiteralControl 
breakTag= New LiteralControl("&lt;br />") 
divListenerInfo.Controls.Add(breakTag) 
divListenerInfo.Controls.Add(breakTag) 
Powiązane problemy