服务器控件虽然用起来方便,但是也牺牲了性能,有些时候用起来显得大而无当。希望先进朋友多多指教。

复制代码 代码如下:

/// <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使用for循环实现Datalist的分列显示功能相关推荐

  1. asp.net中将数据库绑定到DataList控件的实现方法与实例代码

    解决方法1: datalist databind() 解决方法2: 查看MSDN上的详细说明资料 解决方法3: 在DataList的模板中用table表格,如: 复制代码 代码如下: <asp: ...

  2. repeater 控件ajax绑定数据源,【ASP.NET】第九课——使用DataList控件和Repeater控件绑定数据...

    知识点:掌握 DataList 控件呈现数据的方法: 掌握 Repeater 控件呈现数据的方法:掌握处理 Repeater 控件中的按钮事件. 1. 使用 DataList 控件呈现数据 在用 AS ...

  3. ASP.NET Razor – C# 循环和数组简介

    如果需要重复执行相同的语句,可以设定一个循环.需要存储多个相似变量但又不想为每个变量都创建一个独立的变量时,可以使用数组来存储. For 循环 如果您需要重复执行相同的语句,您可以设定一个循环. 如果 ...

  4. asp定义数组 并用循环的方式获取数组内容 的方法

    <% myArrayValue = Array("1","2","3","4") myArrayName = Ar ...

  5. asp实用类库--DataList

    DataList: <% '<class> '<name>DataList</name> '<description><![CDATA[数据 ...

  6. ASP.NET 2.0数据教程之三十六 在DataList里编辑和删除数据

    导言 概述插入.更新和删除数据 里我们已经学习了如何使用GridView等控件来插入,更新删除数据.通过ObjectDataSource和其它数据控件仅仅只需要在智能标签里勾一下checkbox就完成 ...

  7. 北大青鸟代码---asp.net初学者宝典

    一.上传图片:使用控件:file,button,image; 上传按钮的代码: string fullfilename=this.File1 .PostedFile .FileName ;取得本地文件 ...

  8. [转]决定何时使用 DataGrid、DataList 或 Repeater

    摘要:了解 ASP.NET 用于显示数据的三个控件: DataGrid.DataList 和 Repeater. 这些控件中的每一个都有独特的特性以及相关的优点和缺点. 创建显示数据的 ASP.NET ...

  9. ASP.NET的五大数据控件分析

    ASP.NET 数据控件:GridView,DataList,Repeater ,DetailsView,FormView. ASP.NET 数据控件综述: 1.前3个用于呈现多条记录,后面2个用于呈 ...

最新文章

  1. AI视觉组培训第二弹——入门篇
  2. SharePoint 2013 Error - TypeError: Unable to get property 'replace' of undefined or null reference
  3. python webdriver api-操作日期元素的方法
  4. #Tomcat# 本地正常但是部署到服务器后,mysql插入中文乱码问题解决!
  5. java 龟兔赛跑预测_[Java] 蓝桥杯BASIC-24 基础练习 龟兔赛跑预测
  6. Python类常用的魔术方法
  7. vb查询mysql数据库实例_初识vb数据库开发之实例5(数据查询)
  8. 解读神书《凤凰项目》,带你跳出DevOps转型的所有坑
  9. 毛世怀HPDS2017公路路面设计程序系统
  10. multitask_note
  11. python 保存源码,python save保存图片系统提示错误请帮忙分析python源码,savepython,很基本的操作,比如imp...
  12. 软件系统的复杂性,没有银弹,只有焦油坑
  13. 如果你有个程序员男友,那么送这12 款键盘绝对不会错
  14. NiFi 的使用心得
  15. 快的买大黄蜂是福是祸?
  16. CAS单点登录(SSO)介绍及部署
  17. windows找不到gpedit.msc请确定文件名
  18. 怎么让照片变年轻_如何用ps把人变年轻水嫩
  19. http中的204和205
  20. 雪花算法及分布式主键生成策略详解

热门文章

  1. 【Android NDK 开发】Android NDK 下载 ( 下载指定历史版本 NDK | Android NDK r10e - 2015 年 5 月 )
  2. 【错误记录】编译 Android 版本的 ijkplayer 报错 ( You must define ANDROID_NDK before starting. | 下载指定版本 NDK )
  3. 【OpenGL】六、Visual Studio 2019 配置 GitHub ( 提取和拉取简介 | 拉取远程代码 )
  4. MySQL 报 Can't create more than max_prepared_stmt_count statements
  5. [Spring cloud 一步步实现广告系统] 14. 全量索引代码实现
  6. Ubuntu16.04下使用ufw保护docker容器
  7. ubuntu权限管理
  8. linux下sort命令使用详解---linux将文本文件内容加以排序命令
  9. Linux下安装jdk(xxx.rpm,非xxx.tar.gz,请注意!)过程
  10. Arrays.sort 不区分大小写 排序