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

 更新时间:2009年12月03日 20:44:07   作者:   我要评论
工程业绩--用for循环代替了DataList多列显示,得到2行四列的表格,需要内存表的8行数据
服务器控件虽然用起来方便,但是也牺牲了性能,有些时候用起来显得大而无当。希望先进朋友多多指教。
复制代码 代码如下:

/// <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标签来输出
}

相关文章

  • asp.net Repeater 自递增

    asp.net Repeater 自递增

    asp.net Repeater 自递增,方便需要递增输出数列的朋友
    2009-02-02
  • Visual Studio 2017中找回消失的“在浏览器中查看”命令

    Visual Studio 2017中找回消失的“在浏览器中查看”命令

    这篇文章主要为大家详细介绍了如何在Visual Studio 2017中找回消失的“在浏览器中查看”命令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • html+ashx 表单提交示例

    html+ashx 表单提交示例

    这篇文章主要介绍了html+ashx 表单提交的具体实现,需要的朋友可以参考下
    2014-03-03
  • asp.net 获取Gridview隐藏列的值

    asp.net 获取Gridview隐藏列的值

    asp.net 获取Gridview隐藏列的值的实现代码。
    2009-11-11
  • ASP.NET2.0 SQL Server数据库连接详解

    ASP.NET2.0 SQL Server数据库连接详解

    本文将详细介绍如何使用Connection对象连接数据库 。对于不同的.NET 数据提供者,ADO.NET采用不同的Connection对象连接数据库。这些Connection对象为我们屏蔽了具体的实现细节,并提供了一种统一的实现方法。
    2009-07-07
  • .NET Core Dapper操作mysql数据库的实现方法

    .NET Core Dapper操作mysql数据库的实现方法

    这篇文章主要介绍了.NET Core Dapper操作mysql数据库的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • asp.net core项目中如何使用html文件

    asp.net core项目中如何使用html文件

    这篇文章主要给大家介绍了关于asp.net core项目中如何使用html文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面是随着小编来一起学习学习吧。
    2018-02-02
  • asp.net 存储过程调用

    asp.net 存储过程调用

    调用存储过程,但无返回值 调用存储过程,返回普通值 调用存储过程,返回数据集的实现代码。
    2009-07-07
  • asp.net DataSet转换成josn并输出示例

    asp.net DataSet转换成josn并输出示例

    如何将DataSet转换成josn并输出,这是很多新手朋友们遇到的问题,下面有个不错的示例,希望对大家有所帮助
    2014-01-01
  • asp.net下加密Config的方法

    asp.net下加密Config的方法

    本文说明使用RSAProtectedConfigurationProvidert和计算机级别的密钥容器进行加密的步骤。
    2011-02-02

最新评论