Click here to Skip to main content
15,885,878 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i have used below code for filtering tree view, it seems search function works correctly, but i do not know how to refresh tree view and populate that after clicking the button.

C#
private IEnumerable<TreeNode> FindNodeByValue(TreeNodeCollection nodes, string searchstring)
    {
        foreach (TreeNode node in nodes)
        {
            if (node.Value.IndexOf(searchstring,
                  StringComparison.CurrentCultureIgnoreCase) >= 0)
                yield return node;
            else
            {
                foreach (var subNode in FindNodeByValue(node.ChildNodes, searchstring))
                    yield return subNode;
            }
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
       
        var query= FindNodeByValue(TreeView1.Nodes, fieldFilterTxtBx.Text);
        if (query != null)
        {
            //TreeView1.Nodes[0].Expand();
            //TreeView1.Nodes.Clear();
            foreach (TreeNode node in query.ToList())
            {
                TreeView1.Nodes.Add(node);
                
            }


            //  TreeNode newnode = new TreeNode("Detail Engineering");
            // TreeView1.Nodes.Add(newnode);

            TreeView1.ExpandAll();
        }

        else
        {

            Label1.Text = "No file found";

        }
    }
Posted
Updated 26-Nov-12 9:06am
v2

1 solution

I think you may be able to issue a Bind() as:

C#
if (query != null)
{
    //TreeView1.Nodes[0].Expand();
    //TreeView1.Nodes.Clear();

    foreach (TreeNode node in query.ToList())
    {
        TreeView1.Nodes.Add(node);
    }

    TreeView1.Bind();

    //  TreeNode newnode = new TreeNode("Detail Engineering");
    // TreeView1.Nodes.Add(newnode);

    TreeView1.ExpandAll();
}
 
Share this answer
 
Comments
masoud_sedighy 27-Nov-12 8:54am    
i did it, but does not works.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900