我有一個控制器有一個Repeater,rptReferrals,它貫穿實體對象列表,引用。 Referrals對象具有對稱爲Answers的另一個表的引用,該表是爲用戶提交的Answers的列表。 rptReferrals會將一個子轉發器rptQuestionnaire綁定到我登錄的人的問題列表,該人員沒有連接到它綁定的引用對象。訪問父中繼器DataItem屬性
下面是ASPX代碼:
<asp:Repeater runat="server" ID="rptReferrals" OnItemDataBound="rptReferrals_OnItemDataBound">
<ItemTemplate>
//some HTML for the referral object
<asp:Repeater runat="server" ID="rptQuestionnaire" OnItemDataBound="rptQuestionnaire_OnItemDataBound">
//some HTML for displaying questions and answers
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
後端代碼:
protected void rptReferrals_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//THIS IS THE ITEM THAT HAS THE LIST OF ANSWERS I NEED
var data = e.Item.DataItem as PatientReferral;
var rptQuestionnaire = e.Item.FindControl("rptQuestionnaire") as Repeater;
rptQuestionnaire.DataSource = QuestionList;
rptQuestionnaire.DataBind();
//QuestionList is a list of questions populated on page load.
// I can't bind to the property of data.Answers because not
//all questions are answered. data.Answers is only a list of
//the questions answered
}
}
protected void rptQuestionnaire_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Need to access the data.Answers object from above. HOW????
}
}
我遇到的問題是不需要的問題清單,我需要顯示所有問題無論用戶是否回答。但是,如果他們確實回答了,我需要顯示答案,這是rptReferrals附加的屬性。
有關如何訪問我的父直放站的數據項屬性的任何想法?我會在這一點上回答。
我幾個星期前,有這個問題,並問了一個問題。 [檢查這裏](http://stackoverflow.com/questions/15137029/accessing-a-nested-repeaters-datasource) –
我會把外部中繼器的內容放入一個單獨的用戶控件,然後你可以給它一個財產與任何你想要的數據項目名稱。總的來說,我認爲這是個好主意,因爲擁有「Container.DataItem」這個名字是指兩個不同的東西會讓人感到困惑。 – millimoose