百分求助一个关于treeview的奇怪问题
我想做一个treeview的分级下载
比如说:
     教委
       清华
         计算机
            一班
              张三
              李四
            二班
       北大
         文法
           1班
            王五
            赵六
数据库中,有三张表,一张是学校名,一张是所有学校的所有院系(每个院系有个学校代码),还有一张班级列表(有院系代码)
我是根据treeview1.selectednode.depth来判断,是哪一个级别的,到对应的表中去读取,目前点击学校名可以加载院系,但是如果在点击院系会在判断深度的时候报错
switch (TreeView1.SelectedNode.Depth.ToString())这句话报错,说对象没有实例化
代码如下
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
     {
         OracleConnection conn = new OracleConnection();
         conn.ConnectionString = "data source=School;user id=School;password=School";
         conn.Open();
         switch (TreeView1.SelectedNode.Depth.ToString())
         {
             case "1":
                 string tmp1 = TreeView1.SelectedNode.Text;
                 string sql = "select DXBH from DX_DMB where DXMC ='" + tmp1 + "'";
                 OracleDataAdapter dataAdapterDP1 = new OracleDataAdapter(sql, conn);
                 DataSet dsDP1 = new DataSet();
                 dataAdapterDP1.Fill(dsDP1);
                 string tmpDXBH = dsDP1.Tables[0].Rows[0]["DXBH"].ToString();
                 string sql2 = "select YXMC from YX_DMB where DXBH = '" + tmpDXBH + "'";
                 OracleDataAdapter dataAdapterDP12 = new OracleDataAdapter(sql2, conn);
                 DataSet dsDP12 = new DataSet();
                 dataAdapterDP12.Fill(dsDP12);
                 if (dsDP12.Tables["table"].Rows.Count != 0)
                 {
                     for (int i = 0; i < dsDP12.Tables["table"].Rows.Count; i++)
                     {
                         TreeNode nodeYX = new TreeNode();
                         nodeYX.Text = dsDP12.Tables[0].Rows[i]["YXMC"].ToString();
                         TreeView1.SelectedNode.ChildNodes.Add(nodeYX);
                         TreeView1.SelectedNode.Expanded = true;
                     }
                     TreeView1.DataBind();
                 }
                 break;
             case "2":
                 break;
         }
点击清华,因为depth=1,所以会进入case "1",然后加载院系,但是再点击加载后的院系的名称就会报错
------解决方案--------------------Depth.ToString()换成level
根节点是0
类推
------解决方案--------------------asp.net?
那就搞错了
------解决方案--------------------asp.net?winform?
------解决方案--------------------asp?????????
------解决方案--------------------TreeView.Level(winform),
------解决方案--------------------怀疑 是不是在新增节点后,TreeView1.SelectedNode变成了新增的那个节点!
------解决方案--------------------真是奇怪
鼠标能点到,就说明TreeView1.SelectedNode.Depth有值.就不应该报对象没实例化.
还都一点不明白,为什么要加 TreeView1.DataBind(); 页面刷新后,节点就会显示,为什么还要DataBind?
你试试重新生成网站试试,我遇到怪问题都是这么解决的
------解决方案--------------------发个例子  可以参考下
private void uwtTemplate_AddNodes()
		{
			int i;
			Node clsNode;
			UltraWebTree uwtTemplate;