当前位置:编程学习 > C#/ASP.NET >>

win7操作系统+vs2008用webcontrs但是treeview总是不显示树形

各位大侠:
     求助!!!!
      win7操作系统+vs2008用webcontrs但是treeview总是不显示树形 
         --------------------编程问答-------------------- 跟win7系统无关,最好贴下你的关键代码,不然找不出问题所在。 --------------------编程问答-------------------- 贴代码

与系统无关

--------------------编程问答-------------------- using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using ljcgygl.pub_class;

public partial class menu_tree : System.Web.UI.Page
{
    protected string is_yhmc,is_id;
    public string is_content;
   // protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
    User userinfo;
    
    protected void Page_Load(object sender, EventArgs e)
    {
        userinfo = eData.GetUserInfo(this);
        is_yhmc = userinfo.YHMC;
        is_id=Request.Params["id"];
        TreeView1.Nodes.Clear();
        ////调用递归函数,完成树形结构的生成
        if (userinfo.YHBH.ToLower() == "super")
        { }
        else
        {
            Total_message();
        }
        if (!IsPostBack)
        {
            AddTree("0", TreeView1.Nodes);
        }
    }
    public void AddTree(string as_root, Microsoft.Web.UI.WebControls.TreeNodeCollection  pNode)
    {
        string ls_sql;
        string ls_yhbh = userinfo.YHBH;
        string ls_yhmc = userinfo.YHMC;
        if (userinfo.YHBH.ToLower() == "super")
            ls_sql = "Select gnbh, gnmc, fbh, fz, ym, '1' qx From t_s_xtdx "
                + " Where nvl(fbh,'0')='" + as_root + "'  ORDER BY sxh";
        else
            ls_sql = "Select a.gnbh, gnmc, fbh, fz, ym, nvl(qx,'0') qx "
                + " FROM t_s_xtdx a, t_s_gnfp b Where a.gnbh = b.gnbh and b.jsbh ='" + userinfo.JSBH + "' and nvl(fbh,'0')='" + as_root + "' ORDER BY sxh";

        DataTable dt = new DataTable();

        if (DBop.SQLSelect(ls_sql, ref dt))
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Microsoft.Web.UI.WebControls.TreeNode tn = new Microsoft.Web.UI.WebControls.TreeNode();
                tn.NodeData = dt.Rows[i]["gnbh"].ToString();
                tn.Text = dt.Rows[i]["gnmc"].ToString();
                if (dt.Rows[i]["ym"] != DBNull.Value)
                {
                    if (dt.Rows[i]["ym"].ToString().IndexOf("?") > 0)
                        tn.NavigateUrl = dt.Rows[i][4].ToString() + "&edit=" + dt.Rows[i][5].ToString();
                    else
                        tn.NavigateUrl = dt.Rows[i][4].ToString() + "?edit=" + dt.Rows[i][5].ToString();
                }
                tn.Target = "main";
                if (dt.Rows[i]["fz"].ToString() == "0")
                {
                    if (dt.Rows[i]["qx"].ToString() == "1")
                        tn.ImageUrl = "img/edit.gif";
                    else
                        tn.ImageUrl = "img/html.gif";
                }
                else
                {
                    tn.ImageUrl = "img/foot.gif";
                    tn.ExpandedImageUrl = "img/foot.gif";
                }
                pNode.Add(tn);
            }
            for (int j = 0; j < pNode.Count; j++)
            {
                string ls_root = pNode[j].NodeData;
                Microsoft.Web.UI.WebControls.TreeNodeCollection nbic = pNode[j].Nodes;
                if (ls_root != "")
                    AddTree(ls_root, nbic);
            }
         }
    }

    private void Total_message()
    {
        int li_count;

        string ls_sql = "select count(*) as count from t_d_tztg_dw a,t_d_tztgfb b "
            + " where dwbh = '" + userinfo.BMBH + "' and bz = '0' and a.lsh=b.lsh and b.fbsj =sysdate";
        DataTable dt = new DataTable();
        bool sign = DBop.SQLSelect(ls_sql, ref dt);
        if (dt.Rows.Count > 0)
        {
            DataRow dr = dt.Rows[0];
            li_count = Convert.ToInt16(dr["count"]);

            is_content = li_count.ToString();
            //is_content = "<a href='http://10.110.1.132/htgl/office/office_news_list.aspx ' target='oldMethod'>" + "您有" +li_count+"条公告未读!"+"</a>";
            //is_content = "<a  target='oldMethod'> "您有" +li_count+"条公告未读!"</a>";

        }

    }

}
--------------------编程问答--------------------
引用 3 楼 yt3usoft 的回复:
TreeView1.Nodes.Clear();
  ////调用递归函数,完成树形结构的生成
  if (userinfo.YHBH.ToLower() == "super")
  { }
  else
  {
  Total_message();
  }
  if (!IsPostBack)
  {
  AddTree("0", TreeView1.Nodes);
  }


AddTree的动作你只在第一次加载页面的时候执行,然后每一次调用Page_Load都会清理树的所有节点,这个不合理吧!
  if (!IsPostBack)
  {
      TreeView1.Nodes.Clear();
      AddTree("0", TreeView1.Nodes);
  }
在加载前清理,不行吗?
--------------------编程问答-------------------- 我只能告诉你,我用Win7,VS从来不给我尥蹶子! --------------------编程问答-------------------- 其实,楼主也没说跟Win7有关哦
嘿嘿嘿嘿~~~~~
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,