私が通常やっていることは、databoundの外側の項目をキャッチして、ページの変数に保存することです。ここで私は2つの連続するリピーターを持っています。私は最初のリピータから年を保存して、私が2番目のリピータをバインドしているときにそれを参照することができます。
protected void repAnnualReport_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
CurrentYear = int.Parse(((Literal)e.Item.FindControl("litLicenseYear")).Text);
Repeater repLicenseLengths = (Repeater)e.Item.FindControl("repLicenseLengths");
repLicenseLengths.DataSource = GetLicenseLengths(CurrentYear);
repLicenseLengths.DataBind();
}
protected void repLicenseLengths_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
CurrentLength = int.Parse(((Literal)e.Item.FindControl("litLicenseLength")).Text) * 365;
Repeater repMonthlyReport = (Repeater)e.Item.FindControl("repMonthlyReport");
repMonthlyReport.DataSource = new object[12];
repMonthlyReport.DataBind();
}
最初のリピータへのバインディングがクラスリストまたはクエリ可能な場合は、最初の行でこのように個々の項目にアクセスできます。
SaveCurrentItem = (CurrentItemClass)e.Item.DataItem;
これは良いアプローチです。オブジェクトを後で使用するために保存する方が、オブジェクトツリーを見つけようとするよりも優れています。 – Jay
シンプルなソリューションをありがとう... – obautista