首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于动态平添导航

2013-04-21 
关于动态添加导航repeater控件的。先说数据库。三个字段idnavgationTypetypename1产品分类AAAA2产品分类BBBB

关于动态添加导航
repeater控件的。

先说数据库。三个字段  id    navgationType     typename  
                       1       产品分类         AAAA
                       2       产品分类         BBBB
                       3       热卖产品         CCCC

想实现这样的导航效果:

   产品分类    AAAA    BBBB
   热卖产品    CCCC


这是我的代码页 关于动态平添导航

nbl是调用的业务逻辑层的。数据访问层的方法就是根据 navgationType 查 typename。返回类型是Dataset.

但是我页面里怎么也绑不上。求大神帮忙
关于动态平添导航
数据库里的数据以后还会添加。怎么让他动态循环列出来,求大神给页面的代码,急死了

  
[解决办法]
我是说,你这个bang()函数在哪里调用的,截图看不出来。
[解决办法]
LZ你这样的并不好用控件来显示

还有既然是动态添加导航,那么导航类别也是应该动态添加的

下面是我在控制台写的一个模拟的程序,用拼接html的方式实现的


class Program
    {
        static void Main(string[] args)
        {
            //手动构建一个DataTable
            DataTable dt = new DataTable();
            dt.Columns.Add("id");
            dt.Columns.Add("navgationType");
            dt.Columns.Add("typename");
            DataRow row1 = dt.NewRow();
            row1["id"] = 1;
            row1["navgationType"] = "产品分类";
            row1["typename"] = "AAA";
            dt.Rows.Add(row1);
            DataRow row2 = dt.NewRow();
            row2["id"] = 2;
            row2["navgationType"] = "产品分类";
            row2["typename"] = "BBB";
            dt.Rows.Add(row2);
            DataRow row3 = dt.NewRow();
            row3["id"] = 3;
            row3["navgationType"] = "热卖产品";
            row3["typename"] = "CCC";


            dt.Rows.Add(row3);
            DataRow row4 = dt.NewRow();
            row4["id"] = 4;
            row4["navgationType"] = "产品分类";
            row4["typename"] = "DDD";
            dt.Rows.Add(row4);
            DataRow row5 = dt.NewRow();
            row5["id"] = 5;
            row5["navgationType"] = "多加一个";
            row5["typename"] = "EEE";
            dt.Rows.Add(row5);

            Console.WriteLine(GetHtml(dt));
            Console.Read();
        }

        /// <summary>
        /// 递归拼接html
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static string GetHtml(DataTable dt)
        {
            //没有数据间直接返回掉
            if (dt.Rows.Count <= 0)
            {
                return "";
            }

            StringBuilder sb = new StringBuilder();
            //取得表的第一个类别
            string navgationType = Convert.ToString(dt.Rows[0]["navgationType"]);
            int index = 1;

            DataRow[] rows = dt.Select("navgationType='" + navgationType + "'");

            sb.Append("<dd>");
            for (int i = 0, count = rows.Length; i < count; i++)
            {
                //取第一条的类别
                if (index++ == 1)
                {
                    sb.Append(rows[i]["navgationType"]);


                }
                sb.AppendFormat("<span>{0}</span>", rows[i]["typename"]);

                //移除已经取过的记录
                dt.Rows.Remove(rows[i]);
            }
            sb.Append("</dd>\r\n");

            //有数据时才进行递归拼接
            if (dt.Rows.Count > 0)
            {
                sb.Append(GetHtml(dt));
            }

            return sb.ToString();
            
        }

     
    }



你可以把你拼接html的方式直接输出到前台
<%= GetHtml()%>

热点排行