数据库结构:编号ID,名称NAME,等参数实现功能:生成HTML页面的几行几列,,,,行列参数是自己设置的<ul>
<li>名称1</li>
<li>名称2</li>
........列:固定参数n,执行循环......
<li>名称n</li>
</ul>
/*========根据数据的列数计算出总共行数循环的次数======*/
<ul>
<li>名称n+1</li>
<li>名称n+2</li>
...........
<li>名称n+n</li>
</ul>说白了:就是按照数据量循环生成指定“行列”!public string HtmlHelper()
{
int intRecords; //定义总共多少数据
int intColumns; //定义总共多少列
int intRows = (intRecords + intColumns -1)/ intColumns; //计算处数据处理填充的行数
//因为要考虑填充数据有时候不能正好满足行列需求,所以只能默认<li>为空</li>
我改如何写,,,还希望高手帮忙
}
<li>名称1</li>
<li>名称2</li>
........列:固定参数n,执行循环......
<li>名称n</li>
</ul>
/*========根据数据的列数计算出总共行数循环的次数======*/
<ul>
<li>名称n+1</li>
<li>名称n+2</li>
...........
<li>名称n+n</li>
</ul>说白了:就是按照数据量循环生成指定“行列”!public string HtmlHelper()
{
int intRecords; //定义总共多少数据
int intColumns; //定义总共多少列
int intRows = (intRecords + intColumns -1)/ intColumns; //计算处数据处理填充的行数
//因为要考虑填充数据有时候不能正好满足行列需求,所以只能默认<li>为空</li>
我改如何写,,,还希望高手帮忙
}
public string HtmlHelper(DataTable dt,int columns)
dt.Rows.Count 就是总记录数int rows= dt.Rows.Count%columns==0? dt.Rows.Count/columns :dt.Rows.Count/columns+1;
rows 实际行数for(int i=0;i<rows;i++)
{
if(i<dt.Rows.Count)
// 有数据
else
//空数据 占位
}
private void LaLaLa()
{
StringBuilder sb = new StringBuilder();
sb.Append("<div>");
sb.Append("<ul>");
for (int i = 0; i < 100; i++)
{
sb.Append("<li>").Append(i.ToString()).Append("</li>");
}
sb.Append("</ul>");
sb.Append("</div>");
//……
}
public string HtmlHelper()
{
int intRecords; //定义总共多少数据
int intColumns; //定义总共多少列 int intRecords;//总记录数
string strData;//数据内容 StringBuilder sb = new StringBuilder();
for (int iRowIndex=0; iRowIndex<intRecords; iRowIndex++)
{
sb.Append("<ul>"); for (int iColIndex=0; iColIndex<intColumns; iColIndex++)
{
if (iRowIndex * intColumns + iColIndex < dt.Rows.Count)
{
strData = "数据内容";
}
else
{
strData = "为空";
} sb.Append("<li>").Append(strData).Append("</li>");
} sb.Append("</ul>");
}
}
public static string HtmlRowsHelper(int columns, int records)
{
string html_Template = Common.FsoHelper.FileReader("Template.html");
Hashtable ht = new Hashtable();
List<Model> list = BLL.GetList(); int rows = records % columns == 0 ? records / columns : records / columns + 1;
StringBuilder sb = new StringBuilder();
string database; for (int irows = 0; irows < rows; irows++)
{
sb.Append("<ul>");
for (int icolumns = 0; icolumns < columns; icolumns++)
{
if (irows * columns + icolumns < records)
{
database = "<a href='/html/" + list[icolumns].Id.ToString() + ".html'>" + list[icolumns].ClassName.ToString() + "<a>";
}
else
{
database = "";
}
sb.Append("<li>").Append(database).Append("</li>");
}
sb.Append("</ul>");
} ht.Add("{$ReplaceClassList$}", sb.ToString()); html_Template = Common.FsoHelper.Replace(html_Template, ht);
Common.FsoHelper.FileWriter("Field.html", html_Template);
}
大概写了,但是执行不了。不知道具体问题出在哪里。。本来显示后用CSS控制每行显示4个LI,总共14个数据好了,思路都给出来了,,差不多能写出来了谢谢了
那就要用一层for循环,然后再在循环中判断有没有列满,列满换行
for (int irows = 0; irows < rows; irows++)
{
if(irows==0||(irows>columns&&irows%columns==1))
{
sb.Append("<ul>");
}
else if(irows%columns==0)
{
sb.Append("</ul>");
}
//...
}
for (int irows = 0; irows < rows; irows++)
{
if(irows==0||(irows>columns&&irows%columns==1))
{
sb.Append("<ul>");
}
//...
if(irows%columns==0)
{
sb.Append("</ul>");
}
}