好的,我无法将System.Tuple'2[System.DateTime,System.Boolean]
强制转换为System.Collections.Generic.List'1[System.Tuple'2[System.DateTime,System.Boolean]]
(系统会在我发表评论的行中显示异常 错误 在下面的代码中)
但是我如何将我的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
我的问题是如何将List绑定到没有接口和类的RepeaterItemEventArgs
。 (就像我们使用List&lt;&gt;)
答案 0 :(得分: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;
}
}