如何在子转发器中获取父项索引?

时间:2011-12-02 06:04:01

标签: asp.net vb.net

我有嵌套转发器,如下所示:

<asp:Repeater ID="rptQuestoes" runat="server">
                    <HeaderTemplate>
                        <ol class="orderedList">
                    </HeaderTemplate>

                    <ItemTemplate>
                        <li>
                            <%#DataBinder.Eval(Container.DataItem, "QuestionName")%>

                            <asp:Repeater ID="rptAlternativas" DataSource='<%# Container.DataItem.Row.GetChildRows("Questionario") %>' runat="server">
                                <HeaderTemplate>
                                    <ul style="list-style-type: none">
                                </HeaderTemplate>

                                <ItemTemplate>
                                    <li>
                                        <input id="rb" type="radio" name='ITEM_INDEX_HERE' value='<%#Container.DataItem("AlternativeID")%>' /><%#Container.DataItem("AlternativeName")%>
                                    </li>
                                </ItemTemplate>

                                <FooterTemplate>
                                    </ul>
                                </FooterTemplate>
                            </asp:Repeater>
                        </li>
                    </ItemTemplate>

                    <FooterTemplate>
                        </ol>
                    </FooterTemplate>
                </asp:Repeater>

我想在ITEM_INDEX_HERE标记中的VB中的子转发器(rptAlternativas)内打印父项索引。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我希望有人可以给你一个比这更好的答案,但我会考虑在你的“Quentionario”子元素中添加一个属性。

<asp:Repeater ID="rptAlternativas" 
   DataSource='<%# Container.DataItem.Row.GetChildRows("Questionario") %>' 
   runat="server">

您可以为每个对象添加问题ID吗?您已经在单选按钮中绑定了他们的AlternativeId,向这些对象添加了一个问题ID可以让您轻松完成:

  <input id="rb" type="radio" name='<%#Container.DataItem("QuestionId")%>' value='<%#Container.DataItem("AlternativeID")%>' />

即使这些对象是从ORM自动生成的,您也应该能够通过局部类添加属性,然后只需在一个简单的循环中设置适当的值。