欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net使用for循环实现Datalist的分列显示功能

程序员文章站 2024-03-08 16:42:59
服务器控件虽然用起来方便,但是也牺牲了性能,有些时候用起来显得大而无当。希望先进朋友多多指教。复制代码 代码如下:/// /// 工程业绩-...
服务器控件虽然用起来方便,但是也牺牲了性能,有些时候用起来显得大而无当。希望先进朋友多多指教。
复制代码 代码如下:

/// <summary>
/// 工程业绩--用for循环代替了datalist多列显示,得到2行四列的表格,需要内存表的8行数据
/// </summary>
private void gcyjshow()
{
stringbuilder sb = new stringbuilder();
productbll pb = new productbll();
datatable dt = pb.getproductbymoreconditions("工程业绩", "工程业绩", "启用");
int count = dt.rows.count;//行数

sb.append("<table style='display: inline; vertical-align: middle;' cellpadding='5' align='center'>");//俩行四列的表格
sb.append("<tr>");
for (int i = 0; i < count; i++)
{
datarow dr = dt.rows[i];
string strid = dr["prodid"].tostring();
string strurl = dr["picture"].tostring();
string strname = dr["prodname"].tostring();
if (dr != null)
{
sb.append("<td>");
sb.append("<table border='0' cellspacing='0' cellpadding='0' width='100%'>");
sb.append("<tr>");
sb.append("<td bgcolor='#ffffff'>");


if (!string.isnullorempty(strid) && !string.isnullorempty(strname) && !string.isnullorempty(strurl))
{
sb.append("<a title='/" + strname + "'");
sb.append(" href='gcyjshow.aspx?strid=" + strid + "'>");
sb.append("<img border='0' width='120' height='98' alt='");
sb.append(strname + "'");
sb.append(" src='/photo/");
sb.append(strurl + "'>");
sb.append("</a>");
}
sb.append("</td>");
sb.append("</tr>");
sb.append("<tr>");
sb.append("<td>");
sb.append("<div style='padding-left: 15px; background: url(images/index_r1_c9.jpg) no-repeat'>");
if (!string.isnullorempty(strname))
{
if (strname.length > 7)
sb.append(strname.substring(0, 7) + "...");
else
sb.append(strname);
}
sb.append("</div>");
sb.append("</td>");
sb.append("</tr>");
sb.append("</table>");
sb.append("</td>");
}
//我们把内存表的4行数据,当做4列一行来输出
//如果内存表行数count<=4,即小于我们要显示的一行一列,会自动终止循环,不需要对tr进行处理
//在等数据等于四列(即一行),且大于一行时 --才进行换行
if (i == 3 && count > 4)
{
sb.append("</tr><tr>");
}
if (i == 7)//当循环达到8次时,一个俩行四列的表格已经完成,此时终止循环
{
break;
}
}

sb.append("</tr>");
sb.append("</table>");
lblgcyj.text = sb.tostring();//用label标签来输出
}