わかりSystem.Tuple'2[System.DateTime,System.Boolean]
ました、キャストできません (システムは、以下のコードにコメントErrorSystem.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;
}
}
コードについて簡単に説明すると、特定の 1 つの選択ですべての日付を取得し、for
私の質問は、RepeaterItemEventArgs
インターフェイスとクラスなしでリストをバインドする方法についてです。(List<> と同じように)