我有一个带有简单html表的经典ASP页面,并且我想基于从数据库中提取的未知数量的记录来循环表行,但是,当我使用do / while循环来循环记录时,一个错误,指出BOF或EOF为True。我希望表格的其他每一行都可以替代背景颜色(我在CSS中设置的颜色)。
<% do while not rsTest.eof %> <tr class="odd"> <td colspan="5"><%=(rsTest.Fields.Item("field").Value)%></td> </tr> <% rsTest.moveNext if not rsTest.eof then count = count + 1 %> <tr class="even"> <td colspan="5"><%=(rsTest.Fields.Item("field").Value)%></td> </tr> <% end if %> <% count = count + 1 rsTest.moveNext loop %>
根据浏览器,该错误发生在循环之前的最后一个“ rsRoster.moveNext”上。如果从数据库中提取的记录数为偶数,则循环不会出错,但是如果要提取的记录数为奇数,则该循环会出错。我尝试插入一些“如果EOF,则什么都不做,否则执行代码”,但是当我这样做时,检查EOF的代码似乎只是被忽略了。任何建议,将不胜感激。
我知道我对此不满意,但请尝试以下操作:
<% Dim oddFlag oddFlag = 1 do while not rsTest.eof if oddFlag=1 Then oddFlag=0 Response.write("<tr class='odd'>") Response.write("<td colspan='5'>") Response.write(rsTest.Fields.Item("field").Value) Response.write("</td></tr>") else oddFlag=1 Response.write("<tr class='even'>") Response.write("<td colspan='5'>") Response.write(rsTest.Fields.Item("field").Value) Response.write("</td></tr>") end if rsTest.moveNext loop %>