如圖,由於資料本身是類是樹狀的結構,為了怕整個資料混淆,有必要將課程˙類別做階層分類。一開始想法很簡單 以為只要在 itemtext 加入 就可以了,沒想到 dropdownlist 會自動去空白,而且無法呈現樹狀架構模式。
找了網路資料後,發現是要從 資料庫下手
DECLARE @tmp_branch TABLE(Branchid char(5), Level int, Sorting varchar(20))
DECLARE @Rstep int
SET @Rstep=0
INSERT @tmp_branch
--由資料表將樹狀資料讀出
-- SEQ int 課程代號 , PQS int 父項目代號 ,root 項目設定為 0
-- TEXT1 課程名稱
SELECT SEQ , @Rstep, SEQ FROM CONFIG
WHERE PQS = 0 WHILE @@ROWCOUNT > 0
BEGIN SET @Rstep = @Rstep + 1
INSERT @tmp_branch SELECT CONVERT(VARCHAR, a.SEQ) ,@Rstep,b.Sorting+ CONVERT(VARCHAR,a.SEQ) FROM CONFIG a,@tmp_branch b
WHERE a.PQS=b.Branchid AND b.Level=@Rstep - 1
END
--再將資料讀出
SELECT SPACE(b.Level*3) + '{0} ' +a.TEXT1 AS TEXT1, b.Branchid AS SEQ
FROM CONFIG a,@tmp_branch b
WHERE a.SEQ=b.Branchid PQS <> 1
ORDER BY b.Sorting
然後在 dropdownlist bind 時 針對 itemtext 加入 HttpUtility.HtmlDecode 即可
ListItem items = new ListItem();
items.Text = dt1.Rows[i]["TEXT1"].ToString().Replace(" ", HttpUtility.HtmlDecode(" "));
C# framework 4.0
sql server 2005搞定收工
沒有留言:
張貼留言