问题描述
hi Dears
我在SQL Server中有一个名为"EQU"的表。 ,基于它我在C#表单上创建了一个树视图,由于数据量很大,加载速度很慢....
I have a table in SQL Server with name "EQU" , Base on it i created a tree view on C# form , Because of large amount of data , it will very slow to loading ....
我认为最好的方法是加载子节点用户扩展其中一个但我不知道如何。
I think best way is , loading sub nodes after user expand one of them but i don't know how.
是否有人帮助我......?
is any one help me ...?
我的表名是: EQU
My table Name is : EQU
儿童代码为: EQUID
Child Code is : EQUID
父代码为: PEQUID
Parent Code is : PEQUID
设备名称: EQUNO
Equipment Name : EQUNO
EQU的描述是: DESEQU
Description of EQU is : DESEQU
级别字段为: NIV" For Restrict Tree view"
Level Field is : NIV "For Restrict Tree view"
订单字段为: ORD "对于排序子节点"
Order Field is : ORD "For Sort Sub Nodes"
// --------------------------我使用的代码:
//-------------------------- Code I used :
public void CreateTreeView(TreeNodeCollection parentNode,int parentID,DataTable mytab)
      {
$
          foreach(mytab.Rows中的DataRow dta)
          {
              if(Convert.ToInt32(dta [" PEQUID"])== parentID)
              {
                  String key = dta [" EQUID"]。ToString();
                  String text = dta [" EQUNO"]。ToString()+" - (" + dta [" DESEQU"]。ToString()+")" ;;
                  TreeNodeCollection newParentNode = parentNode.Add(key,text).Nodes;
                  CreateTreeView(newParentNode,Convert.ToInt32(dta [" EQUID"]),mytab);
              }¥b $ b           }¥b $ b       }
public void CreateTreeView(TreeNodeCollection parentNode, int parentID, DataTable mytab)
{
foreach (DataRow dta in mytab.Rows)
{
if (Convert.ToInt32(dta["PEQUID"]) == parentID)
{
String key = dta["EQUID"].ToString();
String text = dta["EQUNO"].ToString() + "-(" + dta["DESEQU"].ToString() + ")";
TreeNodeCollection newParentNode = parentNode.Add(key, text).Nodes;
CreateTreeView(newParentNode, Convert.ToInt32(dta["EQUID"]), mytab);
}
}
}
谢谢之前
Farzad Khajeh
Farzad Khajeh
推荐答案
在createTreeView方法中,使用递归循环将节点添加到treeview中,I不能假设你根据什么算法添加节点。如果你给我一个表数据的屏幕截图那就太好了。 至于如何创建一个
响应程序。我建议你使用多线程技术。连接数据库的操作是一项耗时的操作。使用任务对象将提供高效且响应迅速的程序。并且treeview控件提供AfterExpand事件,当节点消耗时将发生
。你可以从那里加载子节点。
In your createTreeView method you use recursive loop to add nodes into treeview, I can't assume you add nodes based on what algorithm. It would be nice if you give me the screen shot of your table data. As for how to create a responsive program. I suggest you use multi thread technology. The action of connecting database is a time-consuming operation. Use task object will provided efficient and responsive program. and the treeview control provide AfterExpand event, which will occurs when a node has been expend. you could loading child nodes from there.
祝你好运,
Neil Hu
这篇关于树视图:单击后加载节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!