ASP.NET C #은 드롭 다운 목록의 트리를 생성


렌더링 :

코드 :

[CSHARP]  

System.Data을 사용함;  

System.Web.UI.WebControls을 사용함;  

  

/// <요약>  

/// 드롭 다운 목록 트리 DataTable을 생성  

/// </ 요약>  

공용 클래스 DropDownListHelp  

{  

    개인 문자열 그리드 선;  

    개인 DataTable을 DT;  

    공공 DropDownListHelp ()  

    {  

        //  

        // TODO : 여기에 추가 생성자 논리  

        //  

    }  

    /// <요약>  

    /// 드롭 다운 메뉴 트리 데이터 테이블 생성  

    /// </ 요약>  

    /// <매개 변수 이름 = "데이터 테이블"> </ PARAM>  

    키 필드 /// <매개 변수 이름 = "parentKeyField"> 상위 노드 </ PARAM>  

    /// <NAME = "parentKey"PARAM> 상위 노드 값 </ PARAM>  

    /// 키 필드 <매개 변수 이름 = "키 필드"> 노드 </ PARAM>  

    정렬 된 문자열 </ PARAM> /// <= "sortString"PARAM 이름>  

    /// <PARAM NAME = "DDL"> DownList </ PARAM>  

    공공 무효 createDropDownTree (DataTable의 데이터 테이블, 문자열 parentKeyField, 문자열 parentKey, 문자열 키 필드, 문자열에 textField, 문자열 sortString, DropDownList로 DDL)  

    {  

        이 데이터 테이블 (DT) =;  

        ddl.Items.Add (새을 ListItem ( "", ""));  

        addChildItems (parentKeyField, parentKey, 키 필드 트인 TextField, sortString, DDL);  

    }  

    /// <요약>  

    /// 스패닝 트리 노드 재귀  

    /// </ 요약>  

    키 필드 /// <매개 변수 이름 = "parentKeyField"> 상위 노드 </ PARAM>  

    /// <NAME = "parentKey"PARAM> 상위 노드 값 </ PARAM>  

    /// 키 필드 <매개 변수 이름 = "키 필드"> 노드 </ PARAM>  

    정렬 된 문자열 </ PARAM> /// <= "sortString"PARAM 이름>  

    /// <PARAM NAME = "DDL"> DownList 控件 </ PARAM>  

    /// <리턴> </ 반품>  

    개인 무효 addChildItems (문자열 parentKeyField, 문자열 parentKey, 문자열 키 필드, 문자열에 textField, 문자열 sortString, DropDownList로 DDL)  

    {  

        DataView를 DV = DataView를 새로운 (DT, parentKeyField + "=" "+ parentKey +" ' ", sortString, DataViewRowState.CurrentRows);  

        A = INT dv.Count;  

        경우 (dv.Count == 0)  

        {  

            반환;  

        }  

        대해 INT (I = 0; I <A; I ++)  

        {  

            그리드 선 = "";  

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

            dv.Sort = sortString;  

            getTreeLine (parentKeyField, DV [I] [parentKeyField]로 .toString () 키 필드, DV [I] [키 필드]로 .toString () sortString);  

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

            dv.Sort = sortString;  

            ddl.Items.Add (새을 ListItem (눈금 선 + (I == A - 1 '┗'? "┣") + DV [I]에 textField]로 .toString (), DV [I] [키 필드]로 .toString ( )));  

            addChildItems (parentKeyField, DV [I] [키 필드]로 .toString () 키 필드 트인 TextField, sortString, DDL);  

        }  

        dv.Dispose ();  

    }  

  

    /// <요약>  

    /// 다시 연결 라인에 걸쳐  

    /// </ 요약>  

    키 필드 /// <매개 변수 이름 = "parentKeyField"> 상위 노드 </ PARAM>  

    /// <NAME = "parentKey"PARAM> 상위 노드 값 </ PARAM>  

    /// 키 필드 <매개 변수 이름 = "키 필드"> 노드 </ PARAM>  

    /// <PARAM NAME = "nodeKey"> 노드 값 </ PARAM>  

    정렬 된 문자열 </ PARAM> /// <= "sortString"PARAM 이름>  

    /// <리턴> </ 반품>  

    개인 무효 getTreeLine (문자열 parentKeyField, 문자열 parentKey, 문자열 키 필드, 문자열 nodeKey, 문자열 sortString)  

    {  

        // 선택 부모 노드  

        DataView를 DV = DataView를 새로운 (DT, 키 필드 + "=" "+ parentKey +" ' ", sortString, DataViewRowState.CurrentRows);  

        경우 (dv.Count> 0)  

        {  

            부모 노드의 형제를 선택 //  

            dv.RowFilter = parentKeyField + "=" "+ DV [0] [parentKeyField]로 .toString () +" ' ";  

            dv.Sort = sortString;  

            대 (INT J = 0; J <dv.Count, J ++)  

            {  

                경우 (DV [J] [키 필드]로 .toString () == parentKey)  

                {  

                    만약 (j == dv.Count - 1)  

                    {  

                        그리드 선 = ""+ 그리드 선;  

                    }  

                    그밖에  

                    {  

                        그리드 선 = "┃"+ 그리드 선;  

                    }  

                }  

            }  

            getTreeLine (parentKeyField, DV [0] [parentKeyField]로 .toString () 키 필드, DV [0] [키 필드]로 .toString () sortString);  

        }  

        dv.Dispose ();  

    }  

}  

 

전화 :

[CSHARP]  

DropDownListHelp ddlHelper 새로운 DropDownListHelp을 () =;  

ddlHelper.createDropDownTree (DT 'parentID ","1 ","ID ","텍스트 ","텍스트 ASC "DropDownList1);  

추천

출처www.cnblogs.com/ljs-13/p/12108634.html