views:

112

answers:

1

Hi,

I am trying to refresh an asp.net page using this command:

<meta http-equiv="Refresh" content="10"/>

On that page I have 2 treeviews. The refresh works ok when I just open the page, but when I click on one of the treeviews and expand it, the refresh stopps working and the page isnt being refreshed.

Any ideas why this can happen? Is there any connection to the treeview being expanded?

Here is the full code of the page:

public partial class Results : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    // Function that moves reviewed yellow card to reviewed tree 
    protected void ycActiveTree_SelectedNodeChanged(object sender, EventArgs e)
    {
        ycActiveTree.SelectedNode.Text = "Move To Active"; 
        ycReviewedTree.PopulateNodesFromClient = false;
        ycReviewedTree.Nodes[ycReviewedTree.Nodes.Count - 1].ChildNodes.Add(ycActiveTree.SelectedNode.Parent);
        Application["reviewedTree"] = new ArrayList();
        int count = ((ArrayList)Application["activeTree"]).Count;
        // Move all the nodes from activeTree application to reviewedTree application
        for (int i = 0; Application["activeTree"] != null && i < count; i++)
        {
            ((ArrayList)Application["reviewedTree"]).Add(((ArrayList)Application["activeTree"])[i]);
            ((ArrayList)Application["activeTree"]).RemoveAt(0);
        }
    }

    protected void ycActiveTree_TreeNodePopulate(object sender, TreeNodeEventArgs e)
    {

        if (Application["idList"] != null && e.Node.Depth == 0)
        {

            string[] words = ((String)Application["idList"]).Split(' '); // Yellow Card details
            TreeNode child = new TreeNode("");
            // Go over all the yellow card details and populate the treeview
            for (int i = 1; i < words.Length; i++)
            {
                child.SelectAction = TreeNodeSelectAction.None;
                // Same yellow card
                if (words[i] != "*")
                {
                    // End of details and start of point ip's 
                    if (words[i] == "$")
                    {
                        // Add the yellow card node
                        TreeNode yellowCardNode = new TreeNode(child.Text);
                        yellowCardNode.SelectAction = TreeNodeSelectAction.Expand;

                        e.Node.ChildNodes.Add(yellowCardNode);


                        child.Text = "";
                    }
                    // yellow card details
                    else
                    {
                        child.Text = child.Text + words[i] + " ";
                    }
                }
                // End of yellow card
                else
                {
                    child.PopulateOnDemand = false;
                    child.SelectAction = TreeNodeSelectAction.None;

                    // Populate the yellow card node
                    e.Node.ChildNodes[e.Node.ChildNodes.Count - 1].ChildNodes.Add(child);


                    TreeNode moveChild = new TreeNode("Move To Reviewed");
                    moveChild.PopulateOnDemand = false;
                    moveChild.SelectAction = TreeNodeSelectAction.Select;

                    e.Node.ChildNodes[e.Node.ChildNodes.Count - 1].ChildNodes.Add(moveChild);

                    child = new TreeNode("");


                    Application["activeTree"] = new ArrayList();
                    ((ArrayList)Application["activeTree"]).Add(e.Node.ChildNodes[e.Node.ChildNodes.Count - 1]);
                }
            }
        }
        // If there arent new yellow cards
        else if (Application["activeTree"] != null)
        {
            // Populate the active tree
            for (int i = 0; i < ((ArrayList)Application["activeTree"]).Count; i++)
            {
                e.Node.ChildNodes.Add((TreeNode)((ArrayList)Application["activeTree"])[i]);
            }
        }
        // If there were new yellow cards and nodes that moved from reviewed tree to active tree
        if (Application["idList"] != null && Application["activeTree"] != null && e.Node.ChildNodes.Count != ((ArrayList)Application["activeTree"]).Count)
        {
            for (int i = e.Node.ChildNodes.Count; i < ((ArrayList)Application["activeTree"]).Count; i++)
            {
                e.Node.ChildNodes.Add((TreeNode)((ArrayList)Application["activeTree"])[i]);
            }
        }
        // Nullify the yellow card id's
        Application["idList"] = null;
    }

    protected void ycReviewedTree_SelectedNodeChanged(object sender, EventArgs e)
    {
        ycActiveTree.PopulateNodesFromClient = false;
        ycReviewedTree.SelectedNode.Text = "Move To Reviewed";
        ycActiveTree.Nodes[ycActiveTree.Nodes.Count - 1].ChildNodes.Add(ycReviewedTree.SelectedNode.Parent);
        int count = ((ArrayList)Application["reviewedTree"]).Count;
        // Move all the nodes from reviewedTree application to activeTree application
        for (int i = 0; Application["reviewedTree"] != null && i < count; i++)
        {
            ((ArrayList)Application["activeTree"]).Add(((ArrayList)Application["reviewedTree"])[i]);
            ((ArrayList)Application["reviewedTree"]).RemoveAt(0);
        }
    }

    protected void ycReviewedTree_TreeNodePopulate(object sender, TreeNodeEventArgs e)
    {
        if (Application["reviewedTree"] != null)
        {
            // Populate the reviewed tree
            for (int i = 0; i < ((ArrayList)Application["reviewedTree"]).Count; i++)
            {
                e.Node.ChildNodes.Add((TreeNode)((ArrayList)Application["reviewedTree"])[i]);
            }
        }
    }
}

Thanks,

Greg

A: 

Solved it by setting the "EnabledClientScript" property of the trees to false.

Greg