簡體   English   中英

在用戶控件內引用父Repeater控件的DataItem

[英]Referencing DataItem of parent Repeater control inside a User Control

我需要將用戶控件放入轉發器控件的模板中,並從轉發器的數據源引用數據項。

我試過(忽略特定於我正在使用的CMS平台的第二個演員):

<%# ((EPiServer.Core.PageData)((RepeaterItem)Container.Parent.NamingContainer).DataItem)["PageName"]%>

但是這會拋出以下錯誤:無法將“ASP.usercontrols_searchcontrols_searchresult_ascx”類型的對象強制轉換為“System.Web.UI.WebControls.RepeaterItem”類型

Searchresult_ascx是另一個包含實際轉發器的用戶控件。

我會在usercontrol上添加一個屬性來保存容器 - 像這樣:

<asp:repeater ... >
  <my:usercontrol containerdata='<%# Container.DataItem %>' ... />
</asp:repeater>

當然,在用戶控件數據綁定到您傳遞的PageData項目中。

聽起來你在層次結構中有更多的父母可以獲得所需的控制權。 我經常在調試模式下使用立即窗口來查找我必須退出的深度,或者在網頁上使用Trace =“True”並查看控制樹以查看層次結構。 從那以后你應該能夠找出你的代碼來獲得正確的父控件。

我將OnItemDataBound事件添加到轉發器,並從那里將適當的數據綁定到用戶控件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM