2016-05-16 32 views
0

我有兩個運營商的foreach其中:ASP.NET - 兩個的foreach operatos與邏輯錯誤

  • 月1日 - 查找所有可見的行和插入數據放進去;

  • 2 - 從CAML查詢並獲取數據的foreach行。

我需要的foreach從查詢和插圖數據第一行第一個可見行的foreach第二排從查詢第二可見行插入數據.... 這是我的代碼是:

foreach (TableRow tr in allVisibleRows) 
{ 
    foreach (SPListItem item in myTableCol) 
    { 
     destination = item["Route"].ToString(); 
     dateGo = item["DepartureDate"].ToString(); 
     dateEnd = item["ReturnDate"].ToString(); 
     kmInCity = item["TraveledInCity"].ToString(); 
     kmOutCity = item["TraveledOutCity"].ToString(); 

     ((TextBox)tr.Cells[1].Controls[0]).Text = destination; 
     ((DateTimeControl)tr.Cells[2].Controls[0]).SelectedDate = DateTime.Parse(dateGo); 
     ((DateTimeControl)tr.Cells[3].Controls[0]).SelectedDate = DateTime.Parse(dateEnd); 
     ((TextBox)tr.Cells[4].Controls[0]).Text = kmInCity; 
     ((TextBox)tr.Cells[5].Controls[0]).Text = kmOutCity; 
    } 
} 

從代碼的結果是:

enter image description here

如何解決這個問題,謝謝以前....

+2

foreach(在tr.ItemArray中的SPListItem項) – jdweng

+0

請在一個答案中說這個..有更多的細節。 – Gohyu

+1

是否要將列添加到第一行,或者是否希望在第一行之後添加一行? 「myTbl」是什麼類型?是'list.GetItems(tableQuery);'這與[SPList.GetItems](https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.getitems.aspx)相同? – surfmuggle

回答

1

循環相貌端正,邏輯是錯誤的。您只需將所有記錄放在所有列中。最後你只能看到最後的記錄。

int counter = 0; 

    foreach (TableRow tr in allVisibleRows) 
    { 
      destination = myTableCol[counter]["Route"].ToString(); 
      dateGo = myTableCol[counter]["DepartureDate"].ToString(); 
      dateEnd = myTableCol[counter]["ReturnDate"].ToString(); 
      kmInCity = myTableCol[counter]["TraveledInCity"].ToString(); 
      kmOutCity = myTableCol[counter]["TraveledOutCity"].ToString(); 

      ((TextBox)tr.Cells[1].Controls[0]).Text = destination; 
      ((DateTimeControl)tr.Cells[2].Controls[0]).SelectedDate = DateTime.Parse(dateGo); 
      ((DateTimeControl)tr.Cells[3].Controls[0]).SelectedDate = DateTime.Parse(dateEnd); 
      ((TextBox)tr.Cells[4].Controls[0]).Text = kmInCity; 
      ((TextBox)tr.Cells[5].Controls[0]).Text = kmOutCity; 

      counter++; 
    } 
+0

你是對的我的問題是在我的邏輯.. – Gohyu

+0

這段代碼給了我這個錯誤:指定的參數超出了有效值的範圍。 – Gohyu

+1

您的表格中的行數可能多於或少於記錄。讓他們平等,使其工作。 –