Показать / разделить 4 строки в таблице в цикле

#asp-classic

#asp-classic

Вопрос:

Приведенный ниже код показывает, как отобразить / разделить 2 строки в таблице. Но как мне заставить его показывать / разделить его на 4 строки, а не только на две???

 dim bCloseRow
bCloseRow = True
Do while not objTrucks.eof
If bCloseRow Then response.write "<tr>"
bCloseRow = Not bCloseRow
response.write "<td><input type=checkbox name=dno value=" amp; objTrucks("TRUCK_NO") amp; objTrucks("TRUCK_NO") amp; ">" amp; objTrucks("TRUCK_NO") amp; "</td>"
If bCloseRow Then response.write "</tr>"
objTrucks.movenext
loop
  

Спасибо за любую помощь.

Ответ №1:

Если в наборе записей больше строк, чем четыре, вам нужно сделать строку больше. И если их меньше четырех, вам придется вставить несколько пустых тегов td.

Надеюсь, это поможет

    const iCols=4
    dim iCount:iCount=0
    if not objTrucks.eof then
        response.write "<table>"
        Do while not objTrucks.eof
            if iCount=0 then response.write "<tr>"
            response.write "<td><input type=checkbox name=dno value=" amp; objTrucks("TRUCK_NO") amp; objTrucks("TRUCK_NO") amp; ">" amp; objTrucks("TRUCK_NO") amp; "</td>"
            objTrucks.movenext
            iCount = iCount   1
            if iCount=iCols then 
                response.write "</tr>"
                iCount=0
            end if
        loop
        if iCount>0 then
            for i = iCount to iCols-1
                response.write "<td></td>"
            next
            response.write "</tr>"
        end if
        response.write "</table>"
    end if
  

Ответ №2:

Я бы сделал это, используя счетчик вместо логического флага:

 Const numCols = 4
Dim counter
counter = 0

Do While Not objTrucks.EOF
    If counter Mod numCols = 0 Then
        Response.Write "<tr>"
    End If

    counter = counter   1

    Response.Write "<td><input type=checkbox name=dno value=" amp; objTrucks("TRUCK_NO") amp; objTrucks("TRUCK_NO") amp; ">" amp; objTrucks("TRUCK_NO") amp; "</td>"

    If counter Mod numCols = 0 Then
        Response.Write "</tr>"
    End If

   objTrucks.MoveNext
Loop