怎么将三个表的数据绑定到TreeView上!
例如:表A上的Aname例父节点,表B上的Bname例为子节点,表C上的Url例为链接地址 .
我刚学asp.net。很多不懂。希望大家多多指教!

解决方案 »

  1.   

    使用DataList嵌套
    html代码:
    <asp:datalist id="DataList1" runat="server" CellSpacing="2" RepeatColumns="3" Width="80%">
    <ItemTemplate>
    <table width="100%" border="0" align="center">
    <tr>
    <td><a href="#"><strong><font color="#0033cc"><a href='default2.aspx?id=<%# DataBinder.Eval(Container.DataItem, "id") %>'><%# DataBinder.Eval(Container.DataItem, "type_name") %></a></font></strong></a></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td colspan="2" align="center"><!--子DAALIST-->
    <asp:DataList id="list2" runat="server" Width="100%" CellSpacing="2" RepeatDirection="Horizontal">
    <ItemTemplate>
    <table width="100%" cellspacing="0" cellpadding="1" style="FONT-SIZE: 13px">
    <tr>
    <td>
    <a href="#"><font color="#0033cc"><a href='default1.aspx?id=<%# DataBinder.Eval(Container.DataItem, "id") %>'>
    <%# DataBinder.Eval(Container.DataItem, "type_name")%>
    </a></font></a>
    </td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:DataList>
    </td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:datalist>CS代码:
    private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    string sqlSel,str;
    int i,i2,i9;
    DataList list2 = new DataList();
    list2  = (DataList)e.Item.FindControl("list2");
    i9=this.Hidden1.Value.Length;
    string finishid = ((DataRowView)e.Item.DataItem).Row["ID"].ToString();//根据父list绑定子list,得到父list得该行的id
    // sqlSel =  "select top 2* from tab_product_type2 where  parent_code = '"+finishid+"' order by type_order asc";
    if (this.Hidden3.Value !="2")//对子类的绑定进行处理
    {
    if ((this.Hidden1.Value =="") || (i9<3))
    {
    sqlSel =  "select top 2* from tab_product_type2 where  parent_code = '"+finishid+"' order by type_order asc";
    DataSet objdata2 =new DataSet();
    objdata2=data1.dbbind(sqlSel);
    list2.DataSource =SetType(sqlSel);
    list2.DataBind();
    }
    else
    {
    sqlSel="select count(id) from tab_product_type2 where id in ("+this.Hidden1.Value+") and  parent_code = '"+finishid+"'";
    str=data1.readout (sqlSel,0);
    i=System.Convert.ToInt16 (str);
    if (i>2)
    {
    list2.DataSource=BindChild(this.Hidden1.Value,finishid,0);
    list2.DataBind ();
    //sqlSel="select count(id) from tab_product_type2 where id ("+this.Hidden1.Value+") and  parent_code = '"+finishid+"' order by type_order asc";
    }
    else
    {
    i=2-i;
    list2.DataSource=BindChild(this.Hidden1.Value,finishid,i);
    list2.DataBind ();
    }
    }
    }
    else//为父类
    {
    DataList list = new DataList();
    list  = (DataList)e.Item.FindControl("list");
    finishid = ((DataRowView)e.Item.DataItem).Row["ID"].ToString();//根据父list绑定子list,得到父list得该行的id
    sqlSel =  "select top 2* from tab_product_type2 where  parent_code = '"+finishid+"' order by type_order asc";
    DataSet objdata2 =new DataSet();
    objdata2=data1.dbbind(sqlSel);
    list.DataSource =SetType(sqlSel);
    list.DataBind();
    }
    }
    在private void InitializeComponent()中加入this.DataList1.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(this.DataList1_ItemDataBound);
      

  2.   

    http://adandelion.cnblogs.com/articles/235681.html
    http://www.cnblogs.com/renyu732/archive/2005/09/27/244735.html
      

  3.   

    看你的意思。根本就不应当设置三个表,一个表就足够了,至于绑定方法。可以看treeview的资料。
      

  4.   

    不是我想用三个表!是公司一定要从三个表中抽取数据用TreeView绑定!今天公司不上班。所在在家一个人慢慢研究。