2012-11-20 28 views
0

好吧,我不能投System.Tuple'2[System.DateTime,System.Boolean]System.Collections.Generic.List'1[System.Tuple'2[System.DateTime,System.Boolean]](系統顯示,我把意見錯誤在下面的代碼行除外)的DataBind名單<組<日期時間,布爾>>進入中繼

但我怎麼能綁定我的List<Tuple>在我的轉發器。

如果不爲此任務創建接口或類,則無法完成此操作。

這裏是我的代碼

#region Fields 
ControllerProg controllerProg = new ControllerProg(); 
List<Tuple<DateTime, Boolean>> lstDatePagination = new List<Tuple<DateTime, Boolean>>(); 
List<DateTime> dtPag = new List<DateTime>(); 
#endregion 

dtPag = controllerProg.ListDates(15); 
if (dtPag.Count > 0) 
{ 
    double j = 1; 
    for (int i = 0; i < 15; i++) 
    { 
     if (dtPag.Count > i && dtPag[i] != null) 
     { 
      lstDatePagination.Add(Tuple.Create(dtPag[i], true)); 
     } 
     else 
     { 
      lstDatePagination.Add(Tuple.Create(dtPag.Last().AddDays(j), false)); 
      j++; 
     } 
    } 
    rptPagination.DataSource = lstDatePagination; 
    rptPagination.DataBind(); 
} 

protected void rptPagination_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     // Error 
     List<Tuple<DateTime, Boolean>> datePagination = (List<Tuple<DateTime, Boolean>>)e.Item.DataItem; 
     // InvalidCastException was unhandled by user code 

     Label lblDay = (Label)e.Item.FindControl("lblDay"); 
     lblDay.Text = datePagination[0].Item1.ToString("dd/MM/yyyy"); 
     lblDay.Enabled = datePagination[0].Item2; 
    } 
} 

創建有關的代碼,很短的解釋是,我得到的所有日期在一個特定的選擇,填充間隙在for

我問題是關於如何將列表綁定到沒有接口和類的RepeaterItemEventArgs。 (就像我們用名單<>做的那樣)

回答

3

當然你不能將Tuple<DateTime, Boolean>轉換成List<Tuple<DateTime, Boolean>>。試試:

protected void rptPagination_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     // Error 
     Tuple<DateTime, Boolean> datePagination = (Tuple<DateTime, Boolean>)e.Item.DataItem; 

     Label lblDay = (Label)FindControl("lblDay"); 
     lblDay.Text = datePagination.Item1.ToString("dd/MM/yyyy"); 
     lblDay.Enabled = datePagination.Item2; 
    } 
} 
+0

這太簡單了,太明顯了,我有點慚愧的問過這個。工作沒有問題=)Tyvm –

相關問題