Я пытаюсь обновить страницу asp.net с помощью этой команды:
<meta http-equiv="Refresh" content="10"/>
На этой странице у меня есть 2 дерева. Обновление работает нормально, когда я просто открываю страницу, но когда я нажимаю на одно из древовидных представлений и раскрываю его, обновление останавливается, и страница не обновляется.
Есть идеи, почему это может произойти? Есть ли какая-либо связь с расширяемым видом дерева?
Вот полный код страницы:
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]);
}
}
}
}
Спасибо
Грег