当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net使用for循环实现Datalist的分列显示功能

ASP.NET
[EnterpriseServices]利用assembly定义我们的组件在COM+中的注册方式
crystal reports for Visual Studio .NET(webformsample)
XML指南:微软的XML解析器
展现C# 清单5.10 生成exe文件执行的问题
vb.net 读写xml方法(1)
选择文件夹的对话框控件c#
特洛伊木马服务器源代码(C#)
上传图片画带阴影的水印.(C#)
vb.net读写xml(2)--实现datagrid与xml的沟通(原创)
列出所有的sheet,然后点击其中的一个,自动跳过去
从VB中的Datagride中向excel导入数据
XML指南:XML CDATA
XML指南:XML编码
XMLDOM对象方法:Document对象方法
XMLDOM对象方法:对象事件
XMLDOM对象方法:对象属性
[一个登录窗体的完整范例,包括登录,密码更改,输入错误三次退出]
[关于判断输入数据是否在数据库中的方法。]
[VBA]office中内建的faceid所对应的图标
web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 353 ::
收藏到网摘: n/a

工程业绩--用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标签来输出
}