我正在尝试在网格上显示我的数据库内容,如下所示:
grid example
我将所有的产品放在一个垂直的列上,如下所示:
my products display
产品被插入到数组“Arrayp”中,现在我可以在垂直表或水平表上显示数据库内容,但不能像前面提到的那样在网格上显示,这是我的代码,我将不胜感激
<TABLE >
<%
while (cmp<=size )
{
out.println("<tr>");
out.println("<td>");
out.println("<p><img src=\"images/" + Arrayp.get(cmi) + " \" width=\"100\" height=\"100\" /></p>");
out.println("<p> categorie " + Arrayp.get(cmp) + "</p>");
out.println("<p> prix " + Arrayp.get(cmpri) + "</p>");
out.println("<p>quantité disponible " + Arrayp.get(cmpqt) + "</p>");
out.println("<form name='f' action='panier' method='post'>");
out.println("<input type='hidden' value= "+Arrayp.get(cmbref) +" name='ref' >");
out.println("<p>quantité desirée</p>");
out.println("<p><input type='text' name='nbr' ></p>");
out.println("<input type='submit' value='ajouter au panier' />") ;
out.println ("</form>");
cmp=cmp+8;
cmi=cmi+8;
cmpqt=cmpqt+8;
cmbref=cmbref+8;
out.println("<p></p>");
out.println("<p></p>");
out.println("</td>");
out.println("<tr>");
%>
</TABLE>发布于 2014-03-31 23:23:18
使用counter计算items,当4个项目交叉时,添加一个新的<tr>标签。现在为每个item添加<tr>标签。下面我给出了一个例子,你可以根据需要修改。
像这样:
<html>
<head>
tr {
display: block;
border: 1px solid blue;
}
td{
border: 1px solid red;
padding: 8px;
}
</style>
</head>
<body>
<%
int start = 0;
int elementsLen = 10;
int counter = 1;
int noOfItemsInRow = 4; //set number of td you want in tr
StringBuilder sb = new StringBuilder();
noOfItemsInRow++;
//start table
out.println("<table>");
while(start<=elementsLen){
sb.append("<td>");
sb.append(start);
sb.append("</td>");
//check if noOfElemntsInRow elements is reached keep it in a new row
if(++counter==noOfItemsInRow){
out.println("<tr>");
out.println(sb.toString());
out.println("</tr>");
sb.setLength(0);
counter = 1;
}
start++;
}
//print remaining td elements in a new row
if(sb.length()>1){
out.println("<tr>");
out.println(sb.toString());
out.println("</tr>");
}
//close table
out.println("</table>");
%>
</body>
</html>输出:

注意:在jsp中使用scriptlet不是一个好主意,相反,您应该使用jstl。
发布于 2014-04-01 14:38:53
我已经让它工作了,我以前试过if,但它不能正常工作。奇怪的是,我今天在没有关闭tr的情况下尝试了一下,我的意思是在最后没有/tr的情况下,它可以工作,并且我得到了一个干净的网格:D更新:这个问题通过关闭while循环之外的TR得到了解决,这是工作代码
int c =0;
int numberofcolumns=4;
%>
<TABLE>
<%
while (cmp<=size )
{
c++;
if (c==numberofcolumns){
numberofcolumns=numberofcolumns+3;
out.println("<tr>");
}
out.println("<td>");
out.println("<p><img src=\"images/" + Arrayp.get(cmi) + " \" width=\"100\" height=\"100\" /></p>");
out.println("<p> categorie " + Arrayp.get(cmp) + "</p>");
out.println("<p> prix " + Arrayp.get(cmpri) + "</p>");
out.println("<p>quantité disponible " + Arrayp.get(cmpqt) + "</p>");
out.println("<form name='f' action='panier' method='post'>");
out.println("<input type='hidden' value= "+Arrayp.get(cmbref) +" name='ref' >");
out.println("<p>quantité desirée</p>");
out.println("<p><input type='text' name='nbr' ></p>");
out.println("<input type='submit' value='ajouter au panier' />") ;
out.println ("</form>");
out.println("<td>");
cmp=cmp+8;
cmi=cmi+8;
cmpqt=cmpqt+8;
cmbref=cmbref+8;
out.println("<p></p>");
out.println("<p></p>");
}//
out.println("</tr>");
%>
</TABLE>https://stackoverflow.com/questions/22759610
复制相似问题