2011-07-29 52 views
0

我有一個for循環的問題,它看起來像這樣ASP.net對於循環問題

for (int i = 0; i < dt.Rows.Count; i++) 
     //for (int i = 0; i < System.Math.Min(dt.Rows.Count, 3); i++) 
     { 
      string date = Convert.ToDateTime(dt.Rows[i]["date"]).ToShortDateString(); 
      schedule[date] = (schedule[date] != null ? schedule[date].ToString() : "") + Server.HtmlEncode(dt.Rows[i]["todo"].ToString()) + "<br />" + dt.Rows[i]["time"].ToString() + "<br />"; 
     } 
     return schedule; 

這對我有一個asp.net日曆控件做了一個日曆。 它將所有記錄循環到我的數據庫中,並返回我的日程安排(該日期的記錄),但我不想顯示超過3行可添加到日曆(數據庫記錄)的文本。你有什麼想法我可以做到這一點?

謝謝你,親切的問候,設計師

+0

有什麼不對的註釋掉的代碼? –

+0

如果我使用那一個,我只從數據庫中得到3條記錄,所以它只是給我3個月後:P,所以它只顯示3個日期到我的整個日曆中,我想要的是不超過3條記錄在每一天的一個日曆日。 ty喬治 –

+0

對不起,我的蹩腳英語荷蘭人在這裏:) –

回答

2

你可以保持您添加每個日期的行數的計數:

Dictionary<string, int> schedulesDateCount = new Dictionary<string, int>(); 

for (int i = 0; i < dt.Rows.Count; i++) 
{ 
    string date = Convert.ToDateTime(dt.Rows[i]["date"]).ToShortDateString(); 

    if(!schedulesDateCount.ContainsKey(date)) 
     schedulesDateCount[date] = 0; 

    if(schedulesDateCount[date] < 3) 
    { 
     schedule[date] = (schedule[date] != null ? schedule[date].ToString() : "") + Server.HtmlEncode(dt.Rows[i]["todo"].ToString()) + "<br />" + dt.Rows[i]["time"].ToString() + "<br />"; 
     schedulesDateCount[date] = schedulesDateCount[date] + 1; 
    } 
} 
return schedule; 
+0

我讓你知道,如果它工作非常 –

+0

Ty全部它的作品非常好尼斯:) –

+0

Response.Write(「TY所有作品很好「); –