|  | 网站首页 | .Net研究 | 
您现在的位置: 程序员之路 >> .Net研究 >> 语言技术区 >> 新手技术 >> 文章正文
赞助商链接
频 道 导 航
.Net研究频道栏目导航
相 关 文 章
将新闻分类[无限分级分类]绑定到DropDownList控件           
将新闻分类[无限分级分类]绑定到DropDownList控件
作者:datasky 文章来源:不详 更新时间:2007-5-10 10:01:26

将新闻分类[无限分级分类]绑定到DropDownList控件

添加或者修改新闻的时候,往往需要选择设置新闻的所在分类,如果新闻的分类是采用无限分级分类的,那么采用级联菜单的形式则不太合适,如果采用多个DropDownList控件,然后处理每个DropDownList控件的SelectedIndexChanged事件来返回服务器获取下级分类,则太慢了。
现在如果能够一次把所有的分类以阶梯形式列举出来,如下图:将方便很多!
---------------------------------

-----------------------------------
代码如下:
------
//功能说明:建立类别的下拉列表
        //输 入 值:DropDownList   defaultSelectId   pareId    DataTable
        //输 出 值:
        public static void BuildDropDownList(DropDownList ddl, int defaultSelectId, int pareId, DataTable dt)
        {
            foreach (DataRow dr in dt.Rows)
            {
                if (Convert.ToInt32(dr["lb_sjbh"]) == pareId)
                {
                    ListItem li = new ListItem();

                    string frontStr = "";

                    if (Convert.ToInt32(dr["lb_jb"]) != 1)
                    {
                        for (int i = 1; i < Convert.ToInt32(dr["lb_jb"]); i++)
                        {
                            frontStr += " ";
                        }
                        frontStr += "└";
                    }

                    li.Text = frontStr + dr["lb_mc"].ToString();
                    li.Value = dr["lb_id"].ToString();

                    if (Convert.ToInt32(dr["lb_id"]) == defaultSelectId)
                    {
                        li.Selected = true;
                    }

                    ddl.Items.Add(li);

                    BuildDropDownList(ddl, defaultSelectId, Convert.ToInt32(dr["lb_id"]), dt);
                }
            }
        }

--------------------
绑定到ListBox控件也可以,代码:
------------------
        //功能说明:建立类别的列表
        //输 入 值:ListBox   defaultSelectId   pareId    DataTable
        //输 出 值:
        public static void BuildListBox(ListBox lst, int defaultSelectId, int pareId, DataTable dt)
        {
            foreach (DataRow dr in dt.Rows)
            {
                if (Convert.ToInt32(dr["lb_sjbh"]) == pareId)
                {
                    ListItem li = new ListItem();

                    string frontStr = "";

                    if (Convert.ToInt32(dr["lb_jb"]) != 1)
                    {
                        for (int i = 1; i < Convert.ToInt32(dr["lb_jb"]); i++)
                        {
                            frontStr += " ";
                        }
                        frontStr += "└";
                    }

                    li.Text = frontStr + dr["lb_mc"].ToString();
                    li.Value = dr["lb_id"].ToString();

                    if (Convert.ToInt32(dr["lb_id"]) == defaultSelectId)
                    {
                        li.Selected = true;
                    }

                    lst.Items.Add(li);

                    BuildListBox(lst, defaultSelectId, Convert.ToInt32(dr["lb_id"]), dt);
                }
            }
        }

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • .Net研究栏目导航
    网站频道导航