Componente TreeView
Solicitio orientação de como trabalhar com o componente TreeView.
Preciso fazer uma aplicação para onde terei que controlar os nós em vários niveis deiferentes.
Já cheguei a mexer a muito tempo com o treeview do Delphi, mas não lembro mais como funciona.
Atte
Sérgio
Sergio Santos
Curtidas 0
Respostas
Luiz Maia
18/02/2009
Olá Sérgio,
O uso do controle Treeview no Visual Studio é muito intuitivo, basta arrastar o controle para sua página e setar as propriedades dos nodos da forma que quiser, clicando em Adicionar Itens.
Para adicionar os itens dinamicamente, segue um exemplo de código:
using Microsoft.Web.UI.WebControls;
namespace Mike.Elliott.Articles.TreeView
{
public class TVExample : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView tvControl;
private void Page_Load( object sender, System.EventArgs e )
{
// Create the root tree node.
TreeNode root = new TreeNode();
root.Text = "Root Parent Node";
root.NodeData = "SomeId=1000;Name=Mike Elliott";
// Create a child node.
TreeNode tn = new TreeNode();
tn.Text = "Child 1 of Root Parent";
tn.NodeData = "SomeId=1001;Name=Play For Sport, Inc.";
// Add the child to the root node.
root.Nodes.Add( tn );
// Create another child node.
tn = new TreeNode();
tn.Text = "Child 2 or Root Parent";
tn.NodeData = "SomeId=1002;Name=Chip Oxendine";
// Create a grandchild node and add it to its parent.
TreeNode cn = new TreeNode();
cn.Text = "Grandchild of Root Parent";
cn.NodeData = "SomeId=1003;Name=Mike Elliott";
tn.Nodes.Add( cn );
// Add the child to the root node.
root.Nodes.Add( tn );
root.Expanded = true;
// Add all the nodes to the tree view.
this.tvControl.Nodes.Add( root );
this.OverRideServerEvents();
}
private void OverRideServerEvents()
{
// Create and wire up the javascript event handlers.
//
string clickHandler = "TVIndexChanged();";
this.tvControl.Attributes.Add( "onselectedindexchange",
clickHandler );
clickHandler = "TVNodeExpand();";
this.tvControl.Attributes.Add( "onexpand",
clickHandler );
clickHandler = "TVNodeCollapse();";
this.tvControl.Attributes.Add( "oncollapse",
clickHandler );
clickHandler = "TVDoubleClick();";
this.tvControl.Attributes.Add( "ondblclick",
clickHandler );
clickHandler = "TVRightClick();";
this.tvControl.Attributes.Add( "oncontextmenu",
clickHandler );
}
}
} Um Menu Treeviw pode ser populado que varias formas, através de um DataSet, XML e etc. Aconselho vc a dar uma olhada nestas duas videos aulas, elas esclarecerão todas suas dúvidas e caso alguma persista, estarei a disposição para ajudá-lo. Lembrado que vc pode acessar as video aulas sem onus, caso nao tenha acesso, me comunique que providenciamos para vc. Não deixe de assisti-las: https://www.devmedia.com.br/articles/viewcomp.asp?comp=5948
https://www.devmedia.com.br/articles/viewcomp.asp?comp=3279 Abraços Luiz Maia
namespace Mike.Elliott.Articles.TreeView
{
public class TVExample : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView tvControl;
private void Page_Load( object sender, System.EventArgs e )
{
// Create the root tree node.
TreeNode root = new TreeNode();
root.Text = "Root Parent Node";
root.NodeData = "SomeId=1000;Name=Mike Elliott";
// Create a child node.
TreeNode tn = new TreeNode();
tn.Text = "Child 1 of Root Parent";
tn.NodeData = "SomeId=1001;Name=Play For Sport, Inc.";
// Add the child to the root node.
root.Nodes.Add( tn );
// Create another child node.
tn = new TreeNode();
tn.Text = "Child 2 or Root Parent";
tn.NodeData = "SomeId=1002;Name=Chip Oxendine";
// Create a grandchild node and add it to its parent.
TreeNode cn = new TreeNode();
cn.Text = "Grandchild of Root Parent";
cn.NodeData = "SomeId=1003;Name=Mike Elliott";
tn.Nodes.Add( cn );
// Add the child to the root node.
root.Nodes.Add( tn );
root.Expanded = true;
// Add all the nodes to the tree view.
this.tvControl.Nodes.Add( root );
this.OverRideServerEvents();
}
private void OverRideServerEvents()
{
// Create and wire up the javascript event handlers.
//
string clickHandler = "TVIndexChanged();";
this.tvControl.Attributes.Add( "onselectedindexchange",
clickHandler );
clickHandler = "TVNodeExpand();";
this.tvControl.Attributes.Add( "onexpand",
clickHandler );
clickHandler = "TVNodeCollapse();";
this.tvControl.Attributes.Add( "oncollapse",
clickHandler );
clickHandler = "TVDoubleClick();";
this.tvControl.Attributes.Add( "ondblclick",
clickHandler );
clickHandler = "TVRightClick();";
this.tvControl.Attributes.Add( "oncontextmenu",
clickHandler );
}
}
} Um Menu Treeviw pode ser populado que varias formas, através de um DataSet, XML e etc. Aconselho vc a dar uma olhada nestas duas videos aulas, elas esclarecerão todas suas dúvidas e caso alguma persista, estarei a disposição para ajudá-lo. Lembrado que vc pode acessar as video aulas sem onus, caso nao tenha acesso, me comunique que providenciamos para vc. Não deixe de assisti-las: https://www.devmedia.com.br/articles/viewcomp.asp?comp=5948
https://www.devmedia.com.br/articles/viewcomp.asp?comp=3279 Abraços Luiz Maia
GOSTEI 0
Luiz Maia
18/02/2009
Sérgio,
Estamos concluindo o chamado. Lembrando que continuamos a sua disposição para qualquer dúvida.
Abraços
Luiz Maia
GOSTEI 0