如果这个问题已经得到解答,我深表歉意(我确信它已经在某个地方)。我正在寻找一种方法来动态填充数据库中的一组列,同时保持它们均匀(或接近)。我使用 asp classic 和 SQL Server 2008 来获取数据。
下面的示例适用于 2 列,只是为了保持简单。我正在考虑找到一种方法来检查我选择的数据条目数并除以 2 以均匀地填充列。如果条目数大约为 13,那么第一列将有 7,第二列将有 6。我对 asp 和 javascript 相当陌生,所以没有什么真正让我感到惊讶。任何正确方向的帮助或指导将不胜感激。谢谢。
<html >
<head>
<style type="text/css">
ul#list { list-style-type: none; }
</style>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0" width="100%" >
<tr>
<div>
<td>
<div style="float: left; width:30%;">
<ul id="list">
<li>Left Item 1</li>
<li>Left Item 2</li>
<li>Left Item 3</li>
<li>Left Item 4</li>
<li>Left Item 5</li>
</ul>
</div>
<div style="float: left; width:30%;">
<ul id="list" >
<li>Middle Item 1</li>
<li>Middle Item 2</li>
<li>Middle Item 3</li>
<li>Middle Item 4</li>
<li>Middle Item 5</li>
</ul>
</div>
</td>
</tr>
</table>
</body>
</html>
最佳答案
更新:如果其他人想知道,这就是我最终所做的。我使用 Row Offset in SQL Server 中的方法.
我得到了返回的总行数
SELECT COUNT(*) AS 表 1 中的计数 ... 然后将它们均匀地分配到各列中。
我有 3 列,因此我将总计数除以 3,并使用此处描述的 RoundUp 函数将第一列向上舍入 http://www.bennysutton.com/Active-Server-Pages/Round-Up-Numbers.aspx
TotalCount = Query01.Fields.Item("count").Value
FirstColumn = RoundUp(TotalCount / 3 , 0)
NewTotalCount = TotalCount - FirstColumn
SecondColumn = TotalCount - NewTotalCount
ThirdColumn = TotalCount - (FirstColumn + SecondColumn)
然后我将构建行偏移 Query02,将 @startRow 和 @endRow 更改为上面的值。从 1 到 FirstColumn,然后 (FirstColumn + 1) 到 (FirstColumn + SecondColumn) 等等......
为了回答@Vogel612,我想从上到下从左到右填充第一列,然后是第二列等等。
<table border="0" cellspacing="0" cellpadding="0" width="100%" >
<tr>
<div>
<td>
<div style="float: left; width:30%;">
<ul id="list">
<%Do Until Query02.EOF
Response.Write"<li> " & Query02.Fields.Item("foo") & " </li>"
Query02.MoveNext
LOOP
Query02.Close%>
</ul>
<ul id="list">
etc.....
</ul>
</div>
</td>
</tr>
</table>
我还看到了 id="list"的问题。我试图这样做是为了摆脱要点。
关于html - 动态填充多列并使列均匀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18601179/