动态填充多列并使列均匀

时间:2013-09-03 20:47:16

标签: html sql-server-2008 asp-classic

如果这已经得到回答,我道歉(我确定它已经在某处)。我正在寻找一种方法来动态填充数据库中的一组列,同时保持它们均匀(或关闭)。我正在使用asp经典与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>

1 个答案:

答案 0 :(得分:2)

更新:如果其他人想知道,这就是我最终做的事情。我在Row Offset in SQL Server中使用了这种方法。

我得到了返回的总行数

SELECT COUNT(*)来自table1的AS计数... 然后在列中平均分配它们。

我有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)

然后我将构建Row Offset 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”的问题。我试图摆脱这些要点。