綁定生成一個有樹結構的下拉菜單

        ///   <summary> 
        ///   綁定生成一個有樹結構的下拉菜單 
        ///   </summary> 
        ///   <param   name= "dtNodeSets "> 菜單記錄數據所在的表 </param> 
        ///   <param   name= "strParentColumn "> 表中用於標記父記錄的字段 </param> 
        ///   <param   name= "strRootValue "> 第一層記錄的父記錄值(一般設計爲0或者-1或者Null)用來表示沒有父記錄 </param> 
        ///   <param   name= "strIndexColumn "> 索引字段,也就是放在DropDownList的Value裏面的字段 </param> 
        ///   <param   name= "strTextColumn "> 顯示文本字段,也就是放在DropDownList的Text裏面的字段 </param> 
        ///   <param   name= "drpBind "> 須要綁定的DropDownList </param> 
        ///   <param   name= "i "> 用來控制縮入量的值,請輸入-1 </param> 

        #region private void MakeTree(DataTable dtNodeSets, string strParentColumn, string strRootValue, string strIndexColumn, string strTextColumn, DropDownList drpBind, int i)

        private void MakeTree(DataTable dtNodeSets, string strParentColumn, string strRootValue, string strIndexColumn, string strTextColumn, DropDownList drpBind, int i)
        {
            //每向下一層,多一個縮入單位 
            i++;

            DataView dvNodeSets = new DataView(dtNodeSets);
            dvNodeSets.RowFilter = strParentColumn + "= '" + strRootValue + "' ";

            string strPading = " ";     //縮入字符

            //經過i來控制縮入字符的長度,我這裏設定的是一個全角的空格 
            for (int j = 0; j < i; j++)
                strPading += " ";//若是要增長縮入的長度,改爲兩個全角的空格就能夠了

            foreach (DataRowView drv in dvNodeSets)
            {
                //TreeNode tnNode = new TreeNode();
                ListItem li = new ListItem(strPading + "▷" + drv[strTextColumn].ToString(), drv[strIndexColumn].ToString());
                drpBind.Items.Add(li);
                MakeTree(dtNodeSets, strParentColumn, drv[strIndexColumn].ToString(), strIndexColumn, strTextColumn, drpBind, i);
            }

            //遞歸結束,要回到上一層,因此縮入量減小一個單位 
            i--;
        }

        #endregion private void MakeTree(DataTable dtNodeSets, string strParentColumn, string strRootValue, string strIndexColumn, string strTextColumn, DropDownList drpBind, int i)
相關文章
相關標籤/搜索