2011-12-08 6 views
3

私は2つのネストされたデータリピータを使用しています。外側のリピータのページングを許可します。ネストされたデータリピータコントロールをページングする最も簡単な方法は何ですか?

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource1" OnItemDataBound="Repeater1_ItemDataBound"> 
     <HeaderTemplate> 
      <div class="group"> 
     </HeaderTemplate> 

     <ItemTemplate> 
      <div class="question"><%#Eval("QText") %></div> 
      <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# setQID(Eval("QID"))%>' /> 

     <%-- THE INNER REPEATER--%>  
     <asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource2"> 
       <HeaderTemplate> 
        <div class="answer"> 
       </HeaderTemplate> 
       <ItemTemplate> 

         <%# (GetAnswer(Eval("AnsQID"))) != 1 ? (displayAnswer(Eval("AText"))) : ""%> 

       </ItemTemplate> 

       <FooterTemplate> 
        </div> 
       </FooterTemplate> 

     </asp:Repeater> 
     <%-- THE INNER REPEATER ENDS HERE--%> 

     </ItemTemplate> 
     <FooterTemplate> 
      </div> 
     </FooterTemplate> 
    </asp:Repeater> 

私はこのためにGoogleで検索している、どこでも検索し、これにアプローチする多くの方法を見つけました:ここ

は、私がこれまで持っているものです。私はLinqDatasourcesと2つのリピータを使用しています。これを行う最善の方法は何ですか?

答えて

2

私は過去にthis postで概説された方法を使用しました。あなたのリピーターがネストされている場合は、結果に大きな違いをもたらすはずがないと思います。内側のリピーターは1つの行としてカウントされます。

リピーターは一般的にはページングのための大きなサポートはありませんが。あなたはListView(ASP.Net 3.5以上を使用している場合)またはGridView(ASP.Net 2.0以上)を使用することを検討することができます。

+0

ありがとうございますが、私は出力をよりコントロールしたいので、これを使用しています。 PagedDatasourceオブジェクトは実行可能なオプションのようですが、どうやってそれを行うのですか? –

+1

@Shane Adrian Muaz - コントロールに関する公正なコメント。私はListViewがリピータ(GridViewではない)のように多くを与えると思う。あなたの質問に答えて - このリンクhttp://www.dotnetcurry.com/ShowArticle.aspx?ID=345はあなたが望むことをしているようです。 LINQDatasourceオブジェクトを統合できるかどうかはわかりません。私は、ページングされたデータソースに直接LINQクエリをバインドしなければならないと思う。ネストされたリピータは、ItemDataBoundイベントにバインドされています。それは役に立ちますか? –

+0

ありがとう!わかった ! :) –

関連する問題