2013-08-17 5 views
1

У меня есть список примерно 50 ~ 60 элементов, которые я хочу разделить на несколько столбцов динамически. Я использую вложенный цикл for, и списки делятся правильно, когда есть даже количество элементов. Однако, когда есть нечетное число, элементы остатка (модуля) не учитываются. Я играл с ним некоторое время и еще не ударил по золоту. Я надеюсь, что кто-то умнее меня может & поможет.Использование модуля при работе с нечетными номерами

Спасибо.

for (int fillRow = 0; fillRow < numOfCols; fillRow++) 
    { 
      for (int fillCell = 0; fillCell < (siteTitles.Count/numOfCols); fillCell++) 
      { 
       linkAddress = new HyperLink(); 
       linkAddress.Text = tempSites[fillCell].ToString(); 
       linkAddress.NavigateUrl = tempUrls[fillCell].ToString(); 

       mainTbl.Rows[fillCell].Cells[fillRow].Controls.Add(linkAddress); 
      } 

     } 

ответ

1

Ну да, проблема здесь:

fillCell < (siteTitles.Count/numOfCols) 

Это подразделение будет округлять вниз, так, например, если есть 13 названий и numOfCols в 5, это даст 2 - это означает, что элементы 10-12 не будут использоваться.

Я полагаю, что на самом деле вы цикл по всем пунктам вместо этого, и работать строку и столбец для каждого элемента:

for (int i = 0; i < siteTitles.Count; i++) 
{ 
    int row = i/numOfCols; 
    int col = i % numOfCols; 
    // Fill in things using row, col and i 
} 

(это не совсем понятно, что вы делаете, как вы используя siteTitles в состоянии цикла и tempSites в теле цикла, и вы не используете fillRow при извлечении данных ... в основном, я думаю, что у вас все еще есть некоторые ошибки ...)

+0

Thanks Jon. Я смог объединить это с приведенным выше кодом, и теперь я могу динамически контролировать количество столбцов и элементов на столбец. знак равно – snapplex

Смежные вопросы