我有一个控制器有一个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