你可以使用一个页面GetXml.aspx来生成xml数据,该页面根据接收的参数不同来生成不同的xml,然后使用节点的treeNodeSrc属性指向GetXml.aspx页面就可以了,当然,你需要通过querystring的方式来传递不同的参数.举例说来:

test.htm
----------------------------------------------------
<HTML xmlns:mydbtree>
<HEAD>
 <?IMPORT NAMESPACE="mydbtree" IMPLEMENTATION="treeview.htc"/>
 <script language=javascript>
 function InitTree()
 {
  usertree.treeNodeSrc = "GetXml.aspx?type=root";
  usertree.databind();
 }
 </script>
</HEAD>
<body onload="javascript:initTree();">
<mydbtree:treeview id="usertree"></mydbtree:treeview>
</body>

----------------------------------
GetXml.aspx.cs
----------------------------------
在GetXml.aspx的Page_Load事件中:
GenerateXml();
GenerateXml()的代码如下:
private void GenerateXml()
{
 string strType = Request.QueryString["type"];
 StringBuilder sXML=new StringBuilder();
 sXML.Append("<?xml version=\"1.0\" encoding=\"gb2312\" ?>");
 sXML.Append("<TREENODES>");
 if (strType != null)
 {
  if (strType.ToLower() == "root")
  {
   sXML.Append("<TREENODE TEXT=\"根节点\" treeNodeSrc=\"GetXml.aspx?type=children\" expanded=\"false\">");
   sXML.Append("</TREENODE>");
  }
  else if (strType.ToLower() == "children")
  {
   sXML.Append("<TREENODE TEXT=\"子节点\" treeNodeSrc=\"GetXml.aspx?type=children\" expanded=\"false\">");
   sXML.Append("</TREENODE>");
  }
 }
 sXML.Append("</TREENODES>");
         Response.Clear()
         Response.Write(sXML.ToString());
         Response.End();
}

基本上就是这样,我这里只是做了一个简单的测试,是一个可以无限展开的树,你可以改进一下来符合你的需求,需要注意的是,你需要把treeview.htc拷贝到你的目录中来,如果需要图片,就需要重新指定imageUrl属性,注意节点的expanded必须为false,否则你没有点击+号,也会自动展开.