2016-03-25 9 views
2

私は<asp:Repeater>コントロールを持っていますが、DataSetには異なるDataTablesの番号をバインドしています。データセットをリピータにバインドする

私のリピータに時刻に1つのテーブルにアクセスしてバインドする方法については混乱しています。

私はその後、表1のテーブル2などからの新しい<tr>し、データのために、まず、この

<ItemTemplate> 
    <tr> 
     <td> 
      <asp:Label ID="Label2" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "heading_id") %>' /> 
     </td> 
    </tr> 
</ItemTemplate> 

ような何かをしたい...しかします。

+1

サイドノードでは、<%#DataBinder.Eval(Container.DataItem、 "heading_id")%> 'を<%#Eval(" heading_id ")に置き換えることができます。 %> ' - それはちょっとしたショートカットです –

+0

ありがとう、私が通常使っているものです:)私のRepeaterにバインドされているものは、複数のテーブルを持つDataSetです。ですから、テーブル[0]から、次にテーブル[1] ...からheading_idを表示したいと思います。 –

答えて

1

ネストされたリピータのように聞こえます。外部のものはDataSetのDataTableを表し、内部のものはDataTableの行を表します。

個人的には、カスタムデータバインディングのためにネストされたリピーターが扱いにくいことがわかりました。多くのイベントバインディングを実行していない限り、おそらくよりインラインのアプローチ

<% foreach (var dt in MyDataSet.Tables) { %> 
    <table> 
     <% foreach (var row in dt.Rows) { %> 
      <tr> 
       <td><label><%= row["heading_id"] %></label></td> 
      </tr> 
     <% } %> 
    </table> 
<% } %> 

コードビハインドでは、DataSetオブジェクトを保護されたフィールドまたはプロパティに割り当てるだけで済みます。

+0

ありがとうジョー。私は実際にどこかでネストされた中継器の記事を見ていました。あなたのアプローチはもっときれいだと思います...ありがとう –

関連する問題