C#TreeView 無限層級分類實現方法

來源:互聯網
上載者:User

做分類 經常會用到無限層級的分類 先介紹一下資料庫的表結構

tid 類別編號

tname 類別名稱

pid 父類編號

測試資料就不寫了,大家可以自己插入一下試試

查詢制定類別的 所有的子類 sql 的 代碼

複製代碼 代碼如下:alter proc proc_chaxun
(@tid int )
as
begin

with tt as
(

select tid,tname,pid from dbo.t_goodsType where tid=@tid
union all
select t.tid,t.tname,t.pid from dbo.t_goodsType t inner join tt
on t.pid=tt.tid
)
select * from tt
end

查詢之後擷取記錄集 綁定到前台的 TreeView 上面

複製代碼 代碼如下: /// <summary>
/// 給Tree 綁定資料 遞迴添加子節點
/// </summary>
/// <param name="dv">資料檢視</param>
/// <param name="tnOld">添加資料的節點</param>
public void TreeDataBind(DataView dv,TreeNode tnOld)
{
TreeNode tnNew; //建立一個新的節點
foreach (DataRowView drv in dv)
{
//為新的借點設定屬性
tnNew = tnOld.Nodes.Add(drv["tname"].ToString());
tnNew.Tag = drv["tid"];
//過濾資料檢視 父類id = 上一級的tid
dv.RowFilter = "pid=" + drv["tid"].ToString();
//自己調用自己
TreeDataBind(dv, tnNew);
}
}

調用的方法很簡單

複製代碼 代碼如下:DataTable dtRet = (DataTable)dh.ExecProcRetObj(ep);
DataView dv = new DataView(dtRet);
dv.RowFilter = "pid=0";
TreeDataBind(dv, this.treeView1.Nodes.Add("商品類別"));

效果

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.