您的位置:首页 > 运维架构

用递归在Dropdownlist中显示树状结构

2006-04-03 17:29 423 查看


建立一个aspx页面,copy如下代码
html代码


<HTML>


<HEAD>


<title>WebForm9</title>


</HEAD>


<body>


<form id="Form1" method="post" runat="server">


<asp:DropDownList id="Dropdownlist3" runat="server" Width="352px"></asp:DropDownList></form>


</body>


</HTML>



cs代码


public class WebForm3 : System.Web.UI.Page






{


protected System.Web.UI.WebControls.DropDownList Dropdownlist3;


private void Page_Load(object sender, System.EventArgs e)






{


DataTable dt = GetData();


BindData(dt,0);


}




private void BindData(DataTable dt,int id)






{


DataView dv = new DataView(dt);


dv.RowFilter = "parentid = " + id.ToString();


int m=0;


foreach(DataRowView drv in dv)






{


m++;


string blank="";


if(id!=0)






{


for(int i=0;i<m;i++)






{


blank+="空格";


}


}


ListItem li=new ListItem();


li.Text=blank+drv["id"].ToString()+drv["name"].ToString();


li.Value=drv["id"].ToString();


this.Dropdownlist3.Items.Add(li);


BindData(dt,Convert.ToInt32(drv["id"]));


}


}








GetData#region GetData


private DataTable GetData()






{


DataTable dt;


dt = new DataTable();




dt.Columns.Add("id");


dt.Columns.Add("parentid");


dt.Columns.Add("name");




DataRow dr;


dr = dt.NewRow();


dr["id"] = "1";


dr["parentid"] = "0";


dr["name"] = "a";


dt.Rows.Add(dr);




dr = dt.NewRow();


dr["id"] = "2";


dr["parentid"] = "1";


dr["name"] = "b";


dt.Rows.Add(dr);




dr = dt.NewRow();


dr["id"] = "3";


dr["parentid"] = "1";


dr["name"] = "c";


dt.Rows.Add(dr);




dr = dt.NewRow();


dr["id"] = "4";


dr["parentid"] = "2";


dr["name"] = "d";


dt.Rows.Add(dr);




dr = dt.NewRow();


dr["id"] = "5";


dr["parentid"] = "2";


dr["name"] = "e";


dt.Rows.Add(dr);




dr = dt.NewRow();


dr["id"] = "6";


dr["parentid"] = "3";


dr["name"] = "f";


dt.Rows.Add(dr);


return dt;




}




#endregion






Web Form Designer generated code#region Web Form Designer generated code


override protected void OnInit(EventArgs e)






{


//


// CODEGEN: This call is required by the ASP.NET Web Form Designer.


//


InitializeComponent();


base.OnInit(e);


}






/**//**//**//// <summary>


/// Required method for Designer support - do not modify


/// the contents of this method with the code editor.


/// </summary>


private void InitializeComponent()






{


this.Load += new System.EventHandler(this.Page_Load);


}


#endregion


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: