private void BindTreeNode(TreeNodeCollection tc, string parentcode)
{
string sql = "select * from v_x_dm where parentcode='" + parentcode + "' order by dmh";
DataTable Dt = pub.GetDataTable(sql);
foreach (DataRow dr in Dt.Rows)
{
TreeNode tn = new TreeNode();
tn.Text = dr["dmmc"].ToString();
tn.Value = dr["dmms"].ToString();
tc.Add(tn);
BindTreeNode(tn.ChildNodes, dr["dmms"].ToString().Trim());
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindTreeNode(TreeView1.Nodes, "");
TreeView1.CollapseAll();
}
}我现在的设计方法是,点TREEVIEW节点的时候,要查一下数据库,才能把这个节点的相应信息显示到TEXTBOX中,
能否建立一个缓存,把TREEVIEW相应的信息存放到里面,每次点节点的时候,从缓存里面取?
新手,谢谢!
如果数据量比较大,那么建议复杂一点的实现,逐层取出数据,当鼠标点击到对应节点时再取该节点的子节点数据,所有取出的数据放在缓存,多次点击同一节点,避免多次取数据。