Specialni strom z trid   otázka

VB.NET

Dobrý den,

potřeboval bych prosím poradit. Pořád si potřebuju udělat prográmek který za mě sestavý html stránku. A bratránek mi poradil abych to udělal formou stromu tak jsem zkusil tohle.

Class html_tag

Public nazev As String

Public dualni As String

Public parametry As New Collection

Public parametry_obsah As New Collection

Public obsah As String

Public bratr As html_tag

Public predek As html_tag

Public sin As html_tag

End Class

představoval bych si to asi napr takhle.

prvek----------------prvek------------prvek

| |

vnoreny prvek vnoreny prvek

|

vnoreyny prvek

jenže vůbec nevím jak mám ten strom vytvořit. Musí být první objekt který bude symbolizovat začátek a pak se vždy asi musí vytvářet nový prvek a navázat se na ten předchozí popřípadně se vnořit do stávajícího.

Pokud jste někdo pochopil můj záměr můžete prosím poradit? Děkuju. (Tu třídu pro práci s html se mi nechce používat)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

já jsem podobný problém také řešil. Pokud víte, že je stránka validní, můžete z jejího kódu vytvořit docela pěkný strom. Pan Herceg mi poradil:

http://vbnet.cz/forum-tema--298-struktur...

snad Vám to pomůže.

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, ale já potřebuji stránku vytvořit nikoliv upravovat vytvořenou ale děkuji za příspěvek.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak já bych to zkusil takhle:

1.) Vytvořit TreeView

2.) Přidat Button, který otveře Dialog(vytvořte si nějaký, kterým pokryjete naplnění vlastností struktury HtmlTag) a po skončení dialogu přidá dialog do stromu.

To se dělá takhle:

If(Treeview1.SelectedNode IsNot Nothing) Then
    Dim NewNode As TreeViewNode
    NewNode.Tag = HtmlTag
    NewNode.Text = HtmlTag.Nazev
    Treeview1.Nodes(Treeview1.SelectedNode).AppendChild(NewNode)
End If

3.) Vytvořit stránku z treeview (s trochou šikovnosti to zvládnete pomocí předchozího příspěvku, který řeší i to, aby se tagy správně uzavřely)

Nevím ,jestli jsem to pochopil dost přesně, kdyžtak napište jak moc VB ovládáte a já si na Vás udělám čas a pošlu Vám kód.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No myslím to trošku jinak. Dyžtak máte icq? Jestli ano tak mi prosím pošlete číslo na mail [email protected].

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Asi nejlepší bude, kdy si nadeklarujete třídu HtmlTag a podřízené tagy budete uchovávat v kolekci HtmlTagCollection, kterou si samozřejmě musíte napsat sám. Vytvořte si tedy třídu HtmlTagCollection nějak takto:

Public Class HtmlTagCollection
    Inherits CollectionBase

    Public Sub Add(ByVal item As HtmlTag)
        MyBase.List.Add(item)
    End Sub

    Public Sub Remove(ByVal i As Integer)
        MyBase.List.RemoveAt(i)
    End Sub

    Default Public Property Item(ByVal i As Integer) As HtmlTag
        Get
            Return CType(MyBase.List.Item(i), HtmlTag)
        End Get
        Set(ByVal value As HtmlTag)
            MyBase.List.Item(i) = value
        End Set
    End Property

End Class

Pokud do kolekce chcete jakékoliv další metody, přidejte si je (asi bych doporučil Find a podobně), vždycky se pracuje s objektem MyBase.List jako s normální kolekcí, tyhle metody k ní jen přistupují. A ještě jedna věc - pokud vracíte HtmlTag, tak vězte, že interní List vrací typ Object, takže jej musíte pomocí CType přetypovat.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback