DevExpress.XtraTreeList加载大量数据是运行速度很慢,请教大家,如何解决呢?
/// <summary>
/// 加载树
/// </summary>
public void LoadStorageClassTree()
{
this.BlankTreeList.Columns.Clear();
this.BlankTreeList.Columns.AddRange(new TreeListColumn[] { tc2,tc3, tc4, tc5, tc6, tc7, tc8,tc10 });
//清空现有节点
this.BlankTreeList.Nodes.Clear();
BlankTreeList.AppendNode(new object[] { "Allblanklist", "全部" }, null);
//根据节点的字段ID名称查找定位节点
TreeListNode node = this.BlankTreeList.FindNodeByFieldValue("BH", "Allblanklist"); //在filedName列中查找所属值得的节点
string strsql = "";
strsql = "'" +txtBH.Text.Replace("'", "''") + "'";
DataTable dt = CPBOMManage.GetBlankList(strsql);
DataView dv = new DataView(dt);
dv.RowFilter = "CPBH= '" + txtBH.Text + "'";
if (dt.Rows.Count > 0)
{
foreach (DataRowView dv1 in dv)
{
object[] nodeview = {dv1["BH"], dv1["CPBH"], dv1["CPMC"], dv1["CPTH"], dv1["JLDW"], dv1["SJS"],dv1["SJS"], dv1["BZ"] };
TreeListNode tn = BlankTreeList.AppendNode(nodeview, node);
GetChild(dv1["CPBH"].ToString(),(int)dv1["SJS"],dt, tn);//参数(父级ID,DataTable表,父节点)
tn.Expanded = false;
}
}
node.ExpandAll();
}
private void GetChild(string upnode, int a,DataTable dt, TreeListNode tn)
{
try
{
DataView dvv = new DataView(dt);
dvv.RowFilter = "BH = '" + upnode + "'";
foreach (DataRowView dv11 in dvv)
{
object[] nodeview = { dv11["BH"], dv11["CPBH"], dv11["CPMC"], dv11["CPTH"], dv11["JLDW"],dv11["SJS"],(int)dv11["SJS"] * a, dv11["BZ"] };
TreeListNode childnode = BlankTreeList.AppendNode(nodeview, tn);
GetChild(dv11["CPBH"].ToString(),(int)dv11["SJS"] * a, dt, childnode);//参数(父级ID,DataTable表,父节点)
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
BOM表测试数据是6000多条,加载显示的树型结构时需要几分钟,是不是通过这种方式不好实现,有什么好的解决办法吗?我把展开属性设置成false,也是很慢,程序就是在加载的时候慢。