树结构是分别从4张表里取出来的,全放在viewstate中,数据少没问题,要是树的第4层有2000多个节点,刷一次,页面就卡死,1分多钟后正常。创建树的方法执行是3秒中,更改图片是1秒钟,首次访问正常,刷新为什么显示页面会卡死啊,1分多钟后正常。2台机子都是这样,刷新我只执行了换图片的方法,快救人啊
在pageload中的
if(!ispostback)
{
........
createTreeView()
//createTreeView()中再调用二级节点的方法,依此类推,共4层
}
else
{
//用timer控件,每1分钟刷一次,更新树的图片
UpdateTreeViewImg();
}
private void UpdateTreeViewImg()
{
List<Model.c_unend_alarm> sAlarmList = new List<Model.c_unend_alarm>();
sAlarmList = TreeBll.GetUnendAlarm();
foreach (TreeNode tn_area in this.TreeView1.Nodes)
{
string aid = (tn_area.Value).ToString();
foreach (TreeNode tn_group in tn_area.ChildNodes)
{
int a = 0;
foreach (TreeNode tn_bureau in tn_group.ChildNodes)
{
int b = 0;
foreach (TreeNode tn_device in tn_bureau.ChildNodes)
{
int c = 0;
string b_dID = (tn_device.Value).ToString();
string[] arry = b_dID.Split('*');
for (int i = 0; i < sAlarmList.Count; i++)
{
if (Convert.ToInt32(arry[0]) == sAlarmList[i].Device_id && Convert.ToInt32(arry[1]) == sAlarmList[i].Bureau_id && Convert.ToInt32(aid) == sAlarmList[i].Area_id)
{
tn_device.ImageUrl = "Web_Img/Alarm/red.gif";
tn_bureau.ImageUrl = "Web_Img/Alarm/red.gif";
tn_group.ImageUrl = "Web_Img/Alarm/red.gif";
a++;
b++;
c++;
break;
}
}
if (c == 0)
{
tn_device.ImageUrl = "Web_Img/Alarm/green.gif";
}
}
if (b == 0)
{
tn_bureau.ImageUrl = "Web_Img/Alarm/green.gif";
}
}
if (a == 0)
{
tn_group.ImageUrl = "Web_Img/Alarm/green.gif";
}
}
}
}
public void CreateTree()
{
List<Model.c_area_info> Arealist = (List<Model.c_area_info>)ViewState ["Arealist"];
for (int i = 0; i < Arealist.Count; i++)
{
Model.c_area_info AreaModel = new Model.c_area_info();
AreaModel = Arealist[i];
TreeNode Fnode = new TreeNode();
Fnode.Text = (AreaModel.Area_name).ToString();
Fnode.Value = (AreaModel.Area_id).ToString();
Fnode.Target = "right";
this.TreeView1.Nodes.Add(Fnode);
CreateChildNode(Convert.ToInt32(Fnode.Value), Fnode);
}
}
拉莫斯之舞
慕妹3242003
一只名叫tom的猫
绝地无双
一只萌萌小番薯
慕桂英546537
繁星淼淼