Získání označených položek v TreeView   otázka

VB.NET, ASP.NET WebForms

Ahoj.

V treeView chci využívat možnost označení položky pomocí CheckBoxů. Bohužel nějak nejsem schopen z kolekce označených položek vydolovat value. Na webu jsem našel tento kód, který kolekci cpe to DataListu, ale to já nechci.

Sub MyButton_Click(ByVal source As Object, ByVal e As EventArgs)
        
      Dim checkedNodes As TreeNodeCollection = MyTree.CheckedNodes
      MyDataList.DataSource = checkedNodes
      MyDataList.DataBind()
    End Sub

Chci z kolekce pouze ty value položek a metoda pokusu omylu u jednotlivých vlastností té kolekce nepomohla. Nemáte s tím zkušenosti?

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

Ukázka výpisu všech hodnot u zaškrtnutých větví na nulté úrovní (TreeView1.Nodes(0).Level = 0).

Dim tNode As TreeNode
For Each tNode In TreeView1.Nodes
  If tNode.Checked Then
    MessageBox.Show(tNode.Name)
  End If
Next

Můžete ale kromě Name využít vlastností Text, popř. Tag.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Přehlédl jsem, že je to dotaz z kategorie ASP.NET...

Místo vlastnosti Name je Value, MessageBox.Show() nahradit Response.WriteFile(), jinak je cyklus totožný.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Díky funguje to. Mohlo mě to napadnout, že mám projít všechny nody, ale nechal jsem se zmást tou možností pracovat už jen s kolekcí vybraných nodů. Ještě jednou diky.

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

... MessageBox.Show() nahradit Response.Write() ... :-)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Obě dvě možnosti jsou velmi prasácké a neměly by se v ASP.NET aplikacích používat. Pro výpis ladících informací slouží Trace, i když uznávám, že jeho použití není úplně přímočaré a jednoduché.

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

Teď Vás tedy vůbec nechápu. Trace slouží k výpisu trasovacích informací a také na to ho používám, ale jak bych z něj měl dostat položky zatržené v treeview? Rovnou ale dodávám, že může existovat určitá funkcionalita, kterou neznám.

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

Trace doporučuji jako náhradu toho MessageBox.Show resp. Response.Write, prostě když něco potřebujete vypsat do stránky pro účely ladění. Samozřejmě to neřeší původní problém, je to jen komentář na některé kusy kódu, které se objevují výše.

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

Tak to jo. S tím mohu jenom souhlasit.

nahlásit spamnahlásit spam 0 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