我的建树代码,树中的层次很多,执行起来相当慢,如何才能优化!
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!Page.IsPostBack)
{
BuildTree(tvTest.Nodes,"部门名称");
}
}
public void BuildTree(TreeNodeCollection Nds,string strDEPNAME)
{
TreeNode tn = new TreeNode();
tn.Text=strDEPNAME;
Nds.Add(tn);
bindtree(tn.Nodes);
}
private void bindtree(TreeNodeCollection Nds)
{
dsgDAC.oleDatabase oConn = new dsgDAC.oleDatabase(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
DataSet ds = new DataSet();
oConn.QueryString = "select LOCCODE,LOCNAME,SUPCODE from PB_DEPART where SUPCODE is null";
oConn.QueryDataSet(ds,"tree");
DataView dv=ds.Tables["tree"].DefaultView;
TreeNode tn;//声明节点
string strSUPID;
foreach(DataRowView dr in dv)
{
strSUPID=dr["LOCCODE"].ToString();
if (strSUPID!="")
{
tn=new TreeNode();
tn.ID=dr["LOCCODE"].ToString();
tn.Text=dr["LOCNAME"].ToString();
Nds.Add(tn);
bindtreeNodes(tn.Nodes,strSUPID);
}
}
}
private void bindtreeNodes(TreeNodeCollection Nds,string depid)
{
dsgDAC.oleDatabase oConn = new dsgDAC.oleDatabase(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
DataSet ds = new DataSet();
oConn.QueryString = "select LOCCODE,LOCNAME,SUPCODE from PB_DEPART where SUPCODE="+depid+" order by LOCCODE asc";
oConn.QueryDataSet(ds,"tree");
DataView dv=ds.Tables["tree"].DefaultView;
TreeNode tn;//声明节点
string strSUPID;
foreach(DataRowView dr in dv)
{
strSUPID=dr["LOCCODE"].ToString();
if (strSUPID!="")
{
tn=new TreeNode();
tn.ID=dr["LOCCODE"].ToString();
tn.Text=dr["LOCNAME"].ToString();
Nds.Add(tn);
bindtreeNodes(tn.Nodes,strSUPID);
}
}
}
代码太乱了。
请发一份到我的邮箱里:
zlcoolzl@163.com
每次点击的时候加载下一层节点,不要一上来就全部加载
可以参考CSDN的Treeview