读书人

关于动态平添导航

发布时间: 2013-04-21 21:18:07 作者: rapoo

关于动态添加导航
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()%>

读书人网 >asp.net

热点推荐