div 、ul、li 动态生成table (2)
/// <summary>
/// 将数据集转成哈希表数组
/// </summary>
/// <param name="ds">数据源</param>
/// <param name="fields">要存储到哈希表的字段</param>
/// <returns></returns>
public Hashtable[] CovertDataSetToHashtable(SqlDataReader ds, string[] fields)
{
Hashtable[] hts = new Hashtable[1000];
int i = 0;
while (ds.Read() && i < hts.Length)
{
foreach (string field in fields)
{
hts[i++].Add(field, ds[field]);
}
}
return hts;
}
/// <summary>
/// 用div、ul、li 生成表格
/// </summary>
/// <param name="colCount">每行的列数</param>
/// <param name="hts">表示数据集的哈希表</param>
/// <param name="actionKey">要生成的数据表的关键字类型(即根据不同的关键字生成不同的表结构)</param>
/// <returns></returns>
public string GenerateTable(int colCount, Hashtable[] hts, string actionKey)
{
int i = 0;
StringBuilder resultStr = new StringBuilder();
foreach (Hashtable ht in hts)
{
if (ht.Keys.Count == 0)
break;
//将索引复位
if (++i % colCount == 0)
i = 0;
//colCount余数为1说明将进行分行,接下的列将纳入新的行中
if (i == 1)
resultStr.Append("<ul>");
//生成列元素内容
resultStr.Append(GenerateColumn(ht, actionKey));
//colCount余数为0说明行结束
if (i == 0)
resultStr.Append("</ul>");
}
//如果colCount的余数在0和colCount之间,则说明前一行的列数不够colCount,结尾尚无</ul>,故需补上
if (0 < i && i < colCount)
resultStr.Append("</ul>");
return resultStr.ToString();
}
/// <summary>
/// 生成列元素的内容
/// </summary>
/// <param name="ht">提供列元素相关数据的哈希表</param>
/// <param name="actionKey">要生成的数据表的关键字类型(即根据不同的关键字生成不同的表结构)</param>
/// <returns></returns>
public string GenerateColumn(Hashtable ht, string actionKey)
{
StringBuilder resultStr = new StringBuilder();
//列标签开始
resultStr.Append("<li>");
//内容,根据不同在actionKey生成不同的列数据
switch (actionKey)
{
case "":
break;
default:
resultStr.Append("分隔");
break;
}
//列标签结束
resultStr.Append("</li>");
return resultStr.ToString();
}
- 16:49
- 浏览 (79)
- 评论 (0)
- 分类: javascript && html && css
- 相关推荐







评论排行榜