2014年7月23日 星期三

SQL 遞迴

declare @CategoryId int = 1;
 
WITH T AS
(
SELECT [CategoryId],ParentID
, 0 AS Level
FROM [Category]
WHERE [CategoryId] = @CategoryId
UNION ALL
SELECT c.[CategoryId],c.ParentID, Level +1
FROM [Category] c
inner JOIN T t1
ON t1.[CategoryId] in (c.ParentID)
)
SELECT * FROM T;

標籤:

2014年7月16日 星期三

C# 遞回 - 組ul

protected void Page_Load(object sender, EventArgs e)
    {

        string nodeStart = "15309";

        GetTree(nodeStart);
       
       
    }

    private void GetTree(string parentId)
    {
        List<NodeBase> nodeList = SelectNode(parentId);  //資料來源

        if (nodeList.Count != 0)
        {
            this.treeStr += "<ul>";

            foreach (NodeBase nb in nodeList)
            {
                this.treeStr += "<li id='" + nb.name + "'>" + "<a>" + nb.name + "</a>";
                GetTree(nb.id);
                this.treeStr += "</li>";
            }

            this.treeStr += "</ul>";
        }
    }

標籤: