2016-07-05 5 views
0

В настоящее время я прохожу через массив, чтобы заполнить таблицу в asp.net с помощью визуального базового. Я хочу заполнить первую строку первыми 9 элементами в массиве, прежде чем заполнять следующую строку из текущей позиции счетчика. Мне всего 2 дня на использование vb, и мой текущий цикл заполняет каждую строку индексом 0 - 9, но в идеале хочет заполнить следующую строку, начиная с 10 - 18 и так далее. В C# я достиг этого, используя код, показанный ниже:Цитирование по массиву динамически

<div class="col-md-10 col-md-offset-1"> 

    <h3 style="text-align:center; padding: 0px;">List of Alerts for Today</h3> 
    <table id="myTable" class="tablesorter" style="width:100%"> 
     <thead class="finger_hover"> 
      <tr> 
       <th>Sensor</th> 
       <th>Date Time</th> 
       <th>Source IP</th> 
       <th>Source Port</th> 
       <th>Destination IP</th> 
       <th>Destination Port</th> 
       <th>Protocol</th> 
       <th>Signature</th> 
       <th>Signature Class</th> 
       <th>Count</th> 

      </tr> 
     </thead> 

     <tbody> 

      @{ 

       int i; 
       for (i = 0; i < alertForTheDay.Count; i++) 
       { 


        @:<tr> 
         @: 
         <td>@alertForTheDay[i]</td> 
           @: 
           <td>@alertForTheDay[i + 1]</td> 
           @: 
           <td>@alertForTheDay[i + 2]</td> 
           @: 
           <td>@alertForTheDay[i + 3]</td> 
           @: 
           <td>@alertForTheDay[i + 4]</td> 
           @: 
           <td>@alertForTheDay[i + 5]</td> 
           @: 
           <td>@alertForTheDay[i + 6]</td> 
           @: 
           <td>@alertForTheDay[i + 7]</td> 
           @: 
           <td>@alertForTheDay[i + 8]</td> 
           @: 
           <td>@alertForTheDay[i + 9]</td> 


           @:</tr> 

        i = i + 9; 

       } 


      } 

     </tbody> 

    </table> 

    </div> 

Этот код заполняет следующую строку со следующим набором элементов в массиве. Вот код для VB:

<div class="col-md-10 col-md-offset-1"> 

    <h3 style="text-align:center; padding: 0px;">List of Alerts for Today</h3> 
    <table id="myTable" class="tablesorter" style="width:100%"> 
     <thead class="finger_hover"> 
      <tr> 
       <th>Sensor</th> 
       <th>Date Time</th> 
       <th>Source IP</th> 
       <th>Source Port</th> 
       <th>Destination IP</th> 
       <th>Destination Port</th> 
       <th>Protocol</th> 
       <th>Signature</th> 
       <th>Signature Class</th> 
       <th>Count</th> 

      </tr> 
     </thead> 

     <tbody> 

      @code 
       Dim increment As Integer = 9 
       Dim i As Integer 
       For i = 0 To alertForTheDay.Count Step i + 1 

        @:<tr> 

         @:<td>@alertForTheDay(0)</td> 
         @:<td>@alertForTheDay(1)</td> 
         @:<td>@alertForTheDay(2)</td> 
         @:<td>@alertForTheDay(3)</td> 
         @:<td>@alertForTheDay(4)</td> 
         @:<td>@alertForTheDay(5)</td> 
         @:<td>@alertForTheDay(6)</td> 
         @:<td>@alertForTheDay(7)</td> 
         @:<td>@alertForTheDay(8)</td> 
         @:<td>@alertForTheDay(9)</td> 

         @:</tr> 

        i = i + 9 

       Next 

      End code 

     </tbody> 

    </table> 

</div> 

В.Б. код заполнит ячейки с точным индексом и даже когда я пошагово код и изменения номера, ячейка всегда заполняется с точным значением ссылочного. Я уверен, что есть простой способ сделать это. Пожалуйста, любая помощь приветствуется. Благодаря

ответ

1

Просто измените свой цикл, чтобы увеличить на 10 и использовать индексацию петли, чтобы получить свои значения из массива

  For i = 0 To alertForTheDay.Count -1 Step 10 

       @:<tr> 

        @:<td>@alertForTheDay(i)</td> 
        @:<td>@alertForTheDay(i+1)</td> 
        @:<td>@alertForTheDay(i+2)</td> 
        @:<td>@alertForTheDay(i+3)</td> 
        @:<td>@alertForTheDay(i+4)</td> 
        @:<td>@alertForTheDay(i+5)</td> 
        @:<td>@alertForTheDay(i+6)</td> 
        @:<td>@alertForTheDay(i+7)</td> 
        @:<td>@alertForTheDay(i+8)</td> 
        @:<td>@alertForTheDay(i+9)</td> 

        @:</tr> 

      Next 

Конечно, это предполагает, что вы alertForTheDay содержит ряд элементов всегда кратна 10

То, что я исправлено:

  • выход петли condion должно быть меньше, чем 1 подсчета элементов, потому что массивы начинаются с индекса 0
  • Шаг приращения состоит из 10 элементов (количество элементов, требуемых одной из ваших строк.
  • Элемент извлекается из массива, используя значение i в качестве базы и увеличивая это значение для достижения каждого элемента в блоках по 10
  • Удалены окончательное приращение I (на шаге 10 в течение цикла делает это бесполезно)
+0

Вот именно то, что я хотел. работал как шарм. Спасибо за помощь, которую я действительно ценю :) – BuzzLightYear