我有一個頁面,其中列出了幾家酒店,並且爲每個酒店列出了用戶選擇的每個日期的價格。嵌套中繼器 - 從子中繼器訪問父節點中的控制器
我的HTML看起來像這樣:
<table>
<asp:Repeater ID="rptrHotels" runat="server">
<ItemTemplate>
<tr><td><%# Eval("HotelName") %></td></tr>
<tr>
<asp:Repeater ID="rptrHotelRates" runat="server" DataSource='<%# GetHotelRates(Container.DataItem) %>'>
<ItemTemplate>
<td>
<span class="date"><%# Eval("Date") %></span>
<span class="price">$<%# Eval("Price") %></span>
</td>
</ItemTemplate>
</asp:Repeater>
<td>
<span class="date">Total</span>
<span class="price">$<asp:Literal ID="litTotal" runat="server" /></span>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
我的後臺代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DateTime startDate = Request.QueryString["StartDate"];
DateTime endDate = Request.QueryString["EndDate"];
List<Hotel> hotels = GetHotels(startDate, endDate);
rptrHotels.DataSource = hotels;
rptrHotels.DataBind();
}
}
protected List<Rate> GetHotelRates(object item)
{
DateTime startDate = Request.QueryString["StartDate"];
DateTime endDate = Request.QueryString["EndDate"];
Hotel hotel = (Hotel)item;
List<Rate> rates = GetRates(hotel, startDate, endDate);
decimal total = (from r in rates
select r.Price).Sum();
return rates;
}
在我GetHotelRates()函數,我總結了所有的速度越來越總價價格。但我需要以某種方式將該值放在litTotal中,該值位於子轉發器之外,但位於父轉發器之內。
我該怎麼做?
你明白了嗎? – ashelvey 2011-06-05 20:33:27