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