2011-12-02 51 views
1

嵌套中繼這樣的:如何獲取子轉發器中的父項索引?

<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> 

我想打印在VB孩子中繼器(rptAlternativas)內父項指數ITEM_INDEX_HERE標記。我怎樣才能做到這一點?

回答

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自動生成的,你應該能夠通過部分類添加屬性,然後在一個簡單的循環中設置適當的值。

+0

這就是我第一次做的,但問題是隨機選擇的,我需要能夠從問題中檢索每個答案。我不能這樣做,因爲我不知道使用Request.Form的確切問題ID(「MY_QUESTION_ID」) –

+0

問題可以隨機選擇,但是真的沒有與它們關聯的「關鍵」值嗎? –

相關問題