ASP.NET C#は、ドロップダウンリストのツリーを生成し、


レンダリング:

コード:

[Cシャープ]  

System.Dataを使用しました。  

System.Web.UI.WebControlsを使用しました。  

  

/// <要約>  

DataTableを生成///ドロップダウンリストツリー  

/// </要約>  

パブリッククラスDropDownListHelp  

{  

    プライベート文字列のグリッド線。  

    民間のDataTable dtは、  

    公共DropDownListHelp()  

    {  

        //  

        // TODO:ここに追加コンストラクタロジック  

        //  

    }  

    /// <要約>  

    DATATABLEを生成///ドロップダウンメニューツリー  

    /// </要約>  

    ///ます。<param name = "データテーブル"> </ param>の  

    キーフィールド///ます。<param name = "parentKeyField">上位ノード</ param>の  

    /// <名前= "parentKey" param>の上位ノード値</ PARAM>  

    ///キーフィールドます。<param name = "keyField">ノード</ param>の  

    ///ます。<param name = "sortString">文字列</ param>のソート  

    ///ます。<param name = "DDL"> DownList </ param>の  

    公共のボイドcreateDropDownTree(DataTableのデータテーブル、文字列parentKeyField、文字列parentKey、文字列keyField、文字テキストフィールド、文字列sortString、DropDownListコントロールDDL)  

    {  

        DT =データテーブル。  

        ddl.Items.Add(新しいリストアイテム( ""、 ""));  

        addChildItems(parentKeyField、parentKey、keyField、テキストフィールド、sortString、DDL)。  

    }  

    /// <要約>  

    ///スパニングツリーノードの再帰  

    /// </要約>  

    キーフィールド///ます。<param name = "parentKeyField">上位ノード</ param>の  

    /// <名前= "parentKey" param>の上位ノード値</ PARAM>  

    ///キーフィールドます。<param name = "keyField">ノード</ param>の  

    ///ます。<param name = "sortString">文字列</ param>のソート  

    ///ます。<param name = "DDL"> DownList控件</ param>の  

    /// <リターン> </リターン>  

    プライベート無効addChildItems(文字列parentKeyField、文字列parentKey、文字列keyField、文字テキストフィールド、文字列sortString、DropDownListコントロールDDL)  

    {  

        DataViewのDV =新しいのDataView(dtは、parentKeyField + "= '" + parentKey + "'"、sortString、DataViewRowState.CurrentRows)。  

        int型、A = dv.Count。  

        (dv.Count == 0)の場合  

        {  

            リターン;  

        }  

        以下のために(int型私は= 0; I <; I ++)  

        {  

            グリッド線= "";  

            dv.RowFilter = parentKeyField + "= '" + parentKey + "'";  

            dv.Sort = sortString。  

            getTreeLine(parentKeyField、DV [I] [parentKeyField] .ToString()、keyField、DV [I] [keyField] .ToString()、sortString)。  

            dv.RowFilter = parentKeyField + "= '" + parentKey + "'";  

            dv.Sort = sortString。  

            ddl.Items.Add(新しいのListItem(グリッド線+(I == - 1 "┗":? "┣")+ DV [i]の[テキストフィールド] .ToString()、DV [i]の[keyField] .ToString( )));  

            addChildItems(parentKeyField、DV [I] [keyField] .ToString()、keyField、テキストフィールド、sortString、DDL)。  

        }  

        dv.Dispose();  

    }  

  

    /// <要約>  

    ///バック接続線にまたがります  

    /// </要約>  

    キーフィールド///ます。<param name = "parentKeyField">上位ノード</ param>の  

    /// <名前= "parentKey" param>の上位ノード値</ PARAM>  

    ///キーフィールドます。<param name = "keyField">ノード</ param>の  

    /// <PARAM NAME = "nodeKey">ノードの値</ PARAM>  

    ///ます。<param name = "sortString">文字列</ param>のソート  

    /// <リターン> </リターン>  

    プライベート無効getTreeLine(文字列parentKeyField、文字列parentKey、文字列keyField、文字列nodeKey、文字列sortString)  

    {  

        //選択した親ノード  

        DataViewのDV =新しいのDataView(dtは、keyField + "= '" + parentKey + "'"、sortString、DataViewRowState.CurrentRows)。  

        (dv.Count> 0)であれば  

        {  

            //親ノードの兄弟を選択  

            dv.RowFilter = parentKeyField + "= '" + DV [0] [parentKeyField] .ToString()+ "'"。  

            dv.Sort = sortString。  

            以下のための(int型J = 0; jの<dv.Countあり、j ++)  

            {  

                IF(DV [J] [keyField] .ToString()== parentKey)  

                {  

                    もし(J == dv.Count - 1)  

                    {  

                        グリッド線=「」+グリッド線。  

                    }  

                    そうしないと  

                    {  

                        グリッド線=「┃」+グリッド線。  

                    }  

                }  

            }  

            getTreeLine(parentKeyField、DV [0] [parentKeyField] .ToString()、keyField、DV [0] [keyField] .ToString()、sortString)。  

        }  

        dv.Dispose();  

    }  

}  

 

コール:

[Cシャープ]  

DropDownListHelp ddlHelper =新しいDropDownListHelp();  

ddlHelper.createDropDownTree(DT、 "PARENTID"、 "1"、 "ID"、 "テキスト"、 "テキストASC"、DropDownList1の)。  

おすすめ

転載: www.cnblogs.com/ljs-13/p/12108634.html