asp.net使用for循环实现Datalist的分列显示功能 服务器控件虽然用起来方便,但是也牺牲了性能,有些时候用起来显得大而无当。希望先进朋友多多指教。复制代码 代码如下:/// /// 工程业绩--用for循环代替了DataList多列显示,得到2行四列的表格,需要内存表的8行数据 /// private void GcyjShow() { StringBuilder sb = new StringBuilder(); ProductBLL pb = new ProductBLL(); DataTable dt = pb.GetProductByMoreConditions("工程业绩", "工程业绩", "启用"); int count = dt.Rows.Count;//行数 sb.Append("");//俩行四列的表格 sb.Append(""); 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(""); } //我们把内存表的4行数据,当做4列一行来输出 //如果内存表行数count<=4,即小于我们要显示的一行一列,会自动终止循环,不需要对tr进行处理 //在等数据等于四列(即一行),且大于一行时 --才进行换行 if (i == 3 && count > 4) { sb.Append(""); } if (i == 7)//当循环达到8次时,一个俩行四列的表格已经完成,此时终止循环 { break; } } sb.Append(""); sb.Append("
"); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append("
"); if (!string.IsNullOrEmpty(strId) && !string.IsNullOrEmpty(strName) && !string.IsNullOrEmpty(strUrl)) { sb.Append(""); sb.Append(""); sb.Append(strName + ""); sb.Append(""); } sb.Append("
"); sb.Append("
"); if (!string.IsNullOrEmpty(strName)) { if (strName.Length > 7) sb.Append(strName.Substring(0, 7) + "..."); else sb.Append(strName); } sb.Append("
"); sb.Append("
"); sb.Append("
"); lblGcyj.Text = sb.ToString();//用Label标签来输出 }