|
我们知道,树型部件中可以以树型展示数据出来。例如我们把组织机构展示出来,可以写业务表:
select dept_id,dept_name,upper_id from sa_dept_dict
然后再设置树型关键列未 dept_id,上级列未upper_id。这样就出来了一个树型的数据。
这样在一般业务中是没有问题的,如果我们设想一下sa_dept_dict表中有成千上万条数据,这样直接一下全部读出来形成一棵树,效率可能就很慢。那如何来解决较好呢。
我们知道因为树型是可以一个一个节点展开的,那就可以先默认加载第一级的数据出来,然后点击第一级的某一个值,再把该值的第二级加载出来,这样点某一个就只加载某一个的直接下级,数据量一下就少很多了,效率提高就非常明显。
例如:开始打开树型的时候,只查询第一层的数据出来。
select dept_id,dept_name,upper_id from sa_dept_dict where upper_id =0
然后,在树型部件的“数据行双击事件”中,再写以下代码。
dim dt=树型部件1.DataTable
if 树型部件1.TreeList.FocusedNode.Nodes.Count=0 then
'加载选择节点的子数据。并填写到树型部件中,实现分层加载数据。
dim dt1=executeSelect("select dept_id,dept_name,upper_id from sa_dept_dict where upper_id="&树型部件1.GetFocusedNodeValue("DEPT_ID"))
for each dr in dt1.Rows
dt.Rows.Add(dr.ItemArray)
next
end if
这样就实现了分层加载数据,大家可以试试,数据量越大,效果越明显。比如总共上万条数据后,分层加载数据就非常有必要。
|
|