DropDownList 递归 事例

    后台代码如下:

  public DataSet ds = null;
    public DataTable dt = new DataTable();
    public SqlConnection con = null;
    public SqlDataAdapter ada = null;
    public string Kong = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            con = new SqlConnection("database=pubs;server=.;uid=sa;pwd=;");
            ada = new SqlDataAdapter("select * from digui ", con);
            ds = new DataSet();
            ada.Fill(ds);
            dt = ds.Tables[0];
            foreach (DataRow row in dt.Select("parentid=0"))
            {
                ListItem lt = new ListItem(row["name"].ToString(), row["id"].ToString());
                DropdownList1.Items.Add(lt);
                digui(row["id"].ToString(),dt);
            }
        }
    }

   

public void digui(string parentid,DataTable dt)
    {
        DataRow[] rows =dt.Select("parentid='"+parentid+"'");
        if (rows.Length > 0)
        {
        //    Kong = Kong + Server.HtmlDecode(" ");
            foreach (DataRow row in rows)
            {
                //ListItem lt = new ListItem(Kong + row["name"].ToString(), row["id"].ToString());
                ListItem lt = new ListItem(this.stradd(int.Parse(row["parentid"].ToString())) + row["name"].ToString(), row["id"].ToString());
                DropdownList1.Items.Add(lt);

                digui(row["id"].ToString(), dt);
            }
         //   Kong = Kong.Remove(0, 1);
        }
    }

    private string stradd(int num)
    {
        string str = "";
        for (int i = 0; i < num; i++)
        {
            //if (num == 1 || num - i == 1)
            //{
            //    str += "┕┅";
            //}
            //else
                str += Server.HtmlDecode("&nbsp;&nbsp;&nbsp;");
        }
        return str;
    }

posted @ 2009-02-22 10:41  瑞君  Views(193)  Comments(0)    收藏  举报