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 MVC5網(wǎng)站開發(fā)用戶修改資料和密碼(六)
這篇文章主要介紹了ASP.NET MVC5網(wǎng)站開發(fā)用戶修改資料和密碼,本文即將結(jié)束member區(qū)域的用戶部分,感興趣的小伙伴們可以參考一下2015-09-09
如何在ASP.NET Core應(yīng)用程序運(yùn)行Vue并且部署在IIS上詳解
這篇文章主要給大家介紹了關(guān)于如何運(yùn)行Vue在ASP.NET Core應(yīng)用程序并且部署在IIS上的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
Microsoft Visual Studio 2010下如何添加命令提示行
這篇文章主要介紹了Microsoft Visual Studio 2010下如何添加命令提示行的相關(guān)資料,需要的朋友可以參考下2015-11-11
ASP.NET中利用WebClient上傳圖片到遠(yuǎn)程服務(wù)的方法
這篇文章主要介紹了ASP.NET中利用WebClient上傳圖片到遠(yuǎn)程服務(wù)的方法,包括客戶端和服務(wù)端,代碼附有注釋,需要的的朋友參考下吧2017-01-01
在ASP.NET Core5.0中訪問HttpContext的方法步驟
這篇文章主要介紹了在ASP.NET Core5.0中訪問HttpContext的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

