我研究了一下该控件的原码,结果什么都没改就编译出错,像这样的TreeView,不如自己写代码来实现比较好一点。。

解决方案 »

  1.   

    在C#的WebForm下做TreeView是现在很多公司头痛的事。如果有人能用C#做出来,谁告诉我([email protected])一声,我给分。呵。
    另:我看了一下WinForm的TreeView,好象也不支持直接用数据表中取数据呀。不过,还没他细看。有人知道的也请发表一下,谢谢。
      

  2.   

    我完全按照微软的例子做的treeview运行时都不断的出错,只能采取静态设计的方法。
      

  3.   

    其实这个控件也不是那么坏的,我试了几下还可以凑户用的,只不过确实不是那么地灵活
    大家可以试试这个代码:
    <%@ Page Language="C#" trace="false" debug="true"%>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OleDb" %>
    <%@ Import Namespace="System.Xml" %>
    <%@ Import Namespace="System.Web" %>
    <%@ Import Namespace="System.Web.UI" %>
    <%@ Import Namespace="System.Web.UI.WebControls" %>
    <%@ Register TagPrefix="SA" Assembly="SATreeView" Namespace="SoftArtisans" %><html><script language="JavaScript">var _console = null;
    function debug(msg)
    {
    if((_console == null) || (_console.closed))
    {
    _console = window.open("", "console", "scrollbars, resizable", "width=600, height=300, resizable");
    _console.document.open("text/plain");
    }
    _console.document.writeln(msg);
    } function Leaf_Click(thisItem)
    {
    // var eLeaf = eval("document.all('" + this.id + "')");

    alert('this.name = ' + thisItem.name);
    alert('this.link = ' + thisItem.link);

    } </script><script language="C#" runat="server">
    OleDbDataReader dr;
    CNode name1;
    public void Page_Load(object sender, EventArgs arts)
    {
    //连接语句
    string MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\Inetpub\\wwwroot\\aspbook.mdb;";
    //查询语句
    string strSel = "Select * from FCST_FUNLIST";
    OleDbConnection MyConn = new OleDbConnection(MyConnString);
    OleDbCommand MyComm = new OleDbCommand(strSel,MyConn);
    MyComm.Connection.Open();
    //注意下面一句
    dr = MyComm.ExecuteReader();
    CNode nodeOne = satree.AddNode("根节点", null, XmlNodeType.Element);
    while(dr.Read())
    {
       if (dr["funcode"].ToString()=="100")   
          name1 =nodeOne.AddNode(dr["funname"].ToString(), null, XmlNodeType.Element);        
       else  
       { 
         if ((dr["funname"].ToString()!="a")&&(dr["upperfun"].ToString()=="100"))
          name1.AddNode(dr["funname"].ToString(), null, XmlNodeType.Text);
       }   

     } 
            dr.Close();

    }

    private void NodeClick(Object sender, TreeClickEventArgs args)
    {//string.Format("You clicked the node: {0}", args.ToString())
    Page.Response.Write(string.Format("You clicked the Node: {0}", args.Node.Text));


    }

    private void LeafClick(Object sender, TreeClickEventArgs args)
    {
    Page.Response.Write(string.Format("You clicked the leaf: {0}", args.Node .ToString()));

    }

    </script><body>
    <form method="POST" action="SATreeView.aspx" runat=server>
    <asp:Panel id="Panel1" runat="server" Height="313px" Width="280px" BorderColor="Red" BorderStyle="Solid" Font-Size="xx-small" Font-Names="宋体">&nbsp;
    <SA:SATreeView id="satree"
    OnLeafClick="LeafClick"
    OnNodeClick="NodeClick"
    CachedLevels=-1
    CssFile=""
    ViewType=SADhtmlTree
    DataType=SAProg
    SizeUnit = px
    Overflow=auto
    MenuOpenImgSource = "images/down.gif"
    MenuClosedImgSource = "images/tri.gif"
    LeafImgSource="images/services.gif"
    Img1OpenSource = "images/minus.gif" 
    Img1ClosedSource = "images/plus.gif"
    Img2OpenSource = "images/bo.gif" 
    Img2ClosedSource = "images/bc.gif"
    runat=server>
    </SA:SATreeView>
    </asp:Panel>
    </form>
    </body>
    </html>