asp.net使用for循環(huán)實(shí)現(xiàn)Datalist的分列顯示功能
更新時(shí)間:2009年12月03日 20:44:07 作者:
工程業(yè)績--用for循環(huán)代替了DataList多列顯示,得到2行四列的表格,需要內(nèi)存表的8行數(shù)據(jù)
服務(wù)器控件雖然用起來方便,但是也犧牲了性能,有些時(shí)候用起來顯得大而無當(dāng)。希望先進(jìn)朋友多多指教。
/// <summary>
/// 工程業(yè)績--用for循環(huán)代替了DataList多列顯示,得到2行四列的表格,需要內(nèi)存表的8行數(shù)據(jù)
/// </summary>
private void GcyjShow()
{
StringBuilder sb = new StringBuilder();
ProductBLL pb = new ProductBLL();
DataTable dt = pb.GetProductByMoreConditions("工程業(yè)績", "工程業(yè)績", "啟用");
int count = dt.Rows.Count;//行數(shù)
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>");
}
//我們把內(nèi)存表的4行數(shù)據(jù),當(dāng)做4列一行來輸出
//如果內(nèi)存表行數(shù)count<=4,即小于我們要顯示的一行一列,會(huì)自動(dòng)終止循環(huán),不需要對tr進(jìn)行處理
//在等數(shù)據(jù)等于四列(即一行),且大于一行時(shí) --才進(jìn)行換行
if (i == 3 && count > 4)
{
sb.Append("</tr><tr>");
}
if (i == 7)//當(dāng)循環(huán)達(dá)到8次時(shí),一個(gè)倆行四列的表格已經(jīng)完成,此時(shí)終止循環(huán)
{
break;
}
}
sb.Append("</tr>");
sb.Append("</table>");
lblGcyj.Text = sb.ToString();//用Label標(biāo)簽來輸出
}
復(fù)制代碼 代碼如下:
/// <summary>
/// 工程業(yè)績--用for循環(huán)代替了DataList多列顯示,得到2行四列的表格,需要內(nèi)存表的8行數(shù)據(jù)
/// </summary>
private void GcyjShow()
{
StringBuilder sb = new StringBuilder();
ProductBLL pb = new ProductBLL();
DataTable dt = pb.GetProductByMoreConditions("工程業(yè)績", "工程業(yè)績", "啟用");
int count = dt.Rows.Count;//行數(shù)
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>");
}
//我們把內(nèi)存表的4行數(shù)據(jù),當(dāng)做4列一行來輸出
//如果內(nèi)存表行數(shù)count<=4,即小于我們要顯示的一行一列,會(huì)自動(dòng)終止循環(huán),不需要對tr進(jìn)行處理
//在等數(shù)據(jù)等于四列(即一行),且大于一行時(shí) --才進(jìn)行換行
if (i == 3 && count > 4)
{
sb.Append("</tr><tr>");
}
if (i == 7)//當(dāng)循環(huán)達(dá)到8次時(shí),一個(gè)倆行四列的表格已經(jīng)完成,此時(shí)終止循環(huán)
{
break;
}
}
sb.Append("</tr>");
sb.Append("</table>");
lblGcyj.Text = sb.ToString();//用Label標(biāo)簽來輸出
}
您可能感興趣的文章:
相關(guān)文章
ASP.NET MVC阿里大于短信接口開發(fā)短信群發(fā)能
這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC阿里大于短信接口來開發(fā)例會(huì)短信群發(fā)能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10Asp.Net 數(shù)據(jù)操作類(附通用數(shù)據(jù)基類)
數(shù)據(jù)操作類代碼,方便在asp.net操作數(shù)據(jù)庫2008-11-11.net core部署到windows服務(wù)上的完整步驟
這篇文章主要給大家介紹了關(guān)于.net core部署到windows服務(wù)上的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用.net core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09使用Entity Framework(4.3.1版本)遇到的問題整理
在這里記錄一下之前使用Entity Framework(4.3.1版本)遇到的問題:更新沒有設(shè)置主鍵的表、更改Code-First的默認(rèn)連接、檢測字符串截?cái)噱e(cuò)誤,需要的朋友可以參考下2012-12-12Queryable.Union 方法實(shí)現(xiàn)json格式的字符串合并的具體實(shí)例
這篇文章介紹了Queryable.Union 方法實(shí)現(xiàn)json格式的字符串合并的具體實(shí)例,有需要的朋友可以參考一下2013-10-10asp.net Parameters.AddWithValue方法在SQL語句的 Where 字句中的用法
今天晚上看論壇,有人提問說,Parameters.AddWithValue方法在有些情況下不好使2009-01-01.NET MVC中ViewData,ViewBag和TempData的區(qū)別淺析
這篇文章主要介紹了.NET MVC中ViewData,ViewBag和TempData的區(qū)別,分析了ViewData,ViewBag和TempData在賦值、功能特性等方面的區(qū)別于用法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01