我必須使用表中配置的值創建動態html表。我使用的是MVC架構的JSP。動態html表
我在表中有一個行號,列號和值字段。如果值分別爲1,5和HELLO,那麼我必須在第1行和第5列顯示這個HELLO。
表結構如下所示。
row column value
1 5 value1
2 8 value2
任何想法?
我必須使用表中配置的值創建動態html表。我使用的是MVC架構的JSP。動態html表
我在表中有一個行號,列號和值字段。如果值分別爲1,5和HELLO,那麼我必須在第1行和第5列顯示這個HELLO。
表結構如下所示。
row column value
1 5 value1
2 8 value2
任何想法?
你需要收集在一個String[][]
第一數據:
int rows = getMaxRowNumberFromDB();
int cols = getMaxColNumberFromDB();
String[][] values = new String[rows][cols];
// ...
while (resultSet.next()) {
int row = resultSet.getInt("row");
int col = resultSet.getInt("col");
String value = resultSet.getString("value");
values[row][col] = value;
}
(注意數組索引是從零開始的,你可能想從row
和col
第一。減去1)
然後顯示它使用JSTLc:forEach
(或任何數據迭代標籤您的「MVC架構」的東西使用)在JSP:
<table>
<c:forEach items="${values}" var="row">
<tr>
<c:forEach items="${row}" var="value">
<td>${value}</td>
</c:forEach>
</tr>
</c:forEach>
</table>
很簡單..謝謝:) – coder247 2010-05-31 10:03:42
取最大列數:
SELECT MAX(column) AS max_column
FROM xxx
然後取在行/列順序的數據:
SELECT *
FROM xxx
ORDER BY row, column
然後寫的外循環,迭代無限期,生成行和內環它遍歷列號。對於每個單元格,檢查當前結果記錄是否與座標匹配。如果是,輸出它並獲取下一條記錄。
下面是一些僞代碼:
max_column = SELECT MAX(column) ...
data = SELECT * ...
if data.eof(): exit
output "<table>"
for row = 1..∞:
output "<tr>"
for col = 1..max_column:
output "<td>"
if data["row"] = row and data["column"] = col:
output data["value"]
data.next()
if data.eof(): exit
output "</td>"
output "</tr>"
output "</table>"
你打算在你的有限信息(一旦你透露更多的細節,我會編輯此):
使用佔位符:
每個細胞插入'{rol,col}'
使用sql返回:
id = {rolw,col}
value = value
僞SQL:
select '{'+str(row)+','+str(col)+'}' as [id]
,value
from table
然後簡單地循環通過每個記錄,和替換佔位符。
EG
您使用的是什麼動態網頁技術? PHP的? ASP? asp.net(c#/ vb)? – 2010-05-28 09:37:43
對不起..我正在使用jsp – coder247 2010-05-28 10:25:26
您應該也標記了這一點。我添加了它。通過標籤,您可以吸引合適的觀衆。 – BalusC 2010-05-28 12:40:27