2011-08-02 15 views
3

リピータを使用して次の表を取得しようとしています。リピータを使用した水平テーブル

<table> 
    <tr> 
     <td>Description:</td> 
     <td>Start time:</td> 
     <td>End time:</td> 
     <td>Game type:</td> 
     <td>Description:</td> 
     <td>Start time:</td> 
     <td>End time:</td> 
     <td>Game type:</td> 
    </tr> 
    <tr> 
     <td>Data1</td> 
     <td>Data2</td> 
     <td>Data3</td> 
     <td>Data4</td> 
     <td>Data1</td> 
     <td>Data2</td> 
     <td>Data3</td> 
     <td>Data4</td> 
    </tr> 
</table> 

しかし、私はそれを行う方法を考えることはできません。私は次のように試しました:

<asp:Repeater ID="rptGames" runat="server"> 
    <HeaderTemplate> 
     <table> 
     <tr> 
    </HeaderTemplate> 
     <ItemTemplate> 
      <td>Description:</td> 
      <td>Start time:</td> 
      <td>End time:</td> 
      <td>Game type:</td> 
     </ItemTemplate> 
     <SeparatorTemplate> 
      </tr><tr> 
     </SeparatorTemplate> 
     <AlternatingItemTemplate> 
      <td><%# Eval("Description") %></td> 
      <td><%# Eval("StartTime") %></td> 
      <td><%# Eval("EndTime") %></td> 
      <td><%# Eval("GameType") %></td> 
     </AlternatingItemTemplate> 
    <FooterTemplate> 
     </tr> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 

セパレータテンプレートが最後に適用されたばかりであれば、うまくいくはずです。 このパターンを各データ項目に対して個別のテーブルを使用して動作させる唯一の方法はありますか?それとも、1つのテーブルを使って目標を達成する方法はありますか?

+0

すべての答えをありがとうが、彼らは私が望むテーブルを作成しないでください。この例に示すように、見出し2を繰り返し(データ項目とともに)繰り返す必要があります。 (ヘッダーテンプレートは一度だけ印刷されることを覚えておいてください) –

+0

ああ、私はあなたが間違っています。あなたのコメントを考慮に入れて私の答えを更新しました –

答えて

0

<tr>をアイテムテンプレート(および代替アイテムテンプレート)に入れてください(ヘッダーではありません)。

<ItemTemplate> 
<tr> 
    <td>Description:</td> 
    <td>Start time:</td> 
    <td>End time:</td> 
    <td>Game type:</td> 
</tr> 
</ItemTemplate> 

その後、あなたの区切り文字テンプレートを調整します(追加、(OPさんのコメントどおり)のヘッダを繰り返し、このようにそれを変更するには:

更新:

<SeparatorTemplate> 
    <tr></tr> 
</SeparatorTemplate> 
1

はこのようにそれを試してみてください多くの列が必要な場合はtdを各trに入力してください)。

OPがヘッダーのスタイルを違えていると仮定し、背景色を追加しました(アイデアを与えるだけです)。

<asp:Repeater ID="rptGames" runat="server"> 
    <HeaderTemplate> 
     <table> 
    </HeaderTemplate> 
     <ItemTemplate> 
      <tr style="background-color: whiteSmoke"> 
       <td>Description:</td> 
       <td>Start time:</td> 
       <td>End time:</td> 
       <td>Game type:</td> 
      </tr> 
     </ItemTemplate> 
     <AlternatingItemTemplate> 
      <tr> 
      <td><%# Eval("Description") %></td> 
      <td><%# Eval("StartTime") %></td> 
      <td><%# Eval("EndTime") %></td> 
      <td><%# Eval("GameType") %></td> 
      </tr> 
     </AlternatingItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 
+0

なぜAlternatingItemTemplateを含むのでしょうか?これはItemTemplateと同じです。 – zeroef

+0

それはあなたがdownvoted理由ですか? – Mrchief

+1

@zeroef - もし彼が​​を交互のアイテムテンプレートに入れているなら、彼はそこにを入れなければなりません。それが理由です。 – Chains

4

[編集 ItemTemplateに;-)

にHeaderTemplateと行にテーブルのヘッダーを書くために試みることができる:まず、私はあなただけのヘッダにあなたのタイトルをしたいと思ったし、各行はデータ項目を表します。

<asp:Repeater ID="rptGames" runat="server"> 
    <HeaderTemplate> 
     <table> 
    </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td>Description:</td> 
       <td>Start time:</td> 
       <td>End time:</td> 
       <td>Game type:</td> 
      </tr> 
      <tr> 
       <td><%# Eval("Description") %></td> 
       <td><%# Eval("StartTime") %></td> 
       <td><%# Eval("EndTime") %></td> 
       <td><%# Eval("GameType") %></td> 
      </tr> 
     </ItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 

:あなたは、すべて単一のデータ項目上記ヘッダが、私は以下のことをお勧めしたいリピートしたいことを、あなたのコメントの後、今

<asp:Repeater ID="rptGames" runat="server"> 
    <HeaderTemplate> 
     <table> 
     <tr> 
      <td>Description:</td> 
      <td>Start time:</td> 
      <td>End time:</td> 
      <td>Game type:</td> 
     </tr> 
    </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td><%# Eval("Description") %></td> 
       <td><%# Eval("StartTime") %></td> 
       <td><%# Eval("EndTime") %></td> 
       <td><%# Eval("GameType") %></td> 
      </tr> 
     </ItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 

:だから私は、次のコードを示唆しました注:使用したAlternatingItemTemplateは、データ項目も表します。これを使用することにより、あなたはすべての単一のアイテム(通常はあなたが奇数のために異なる背景色を使用し、偶数行)

編集2のためにさまざまな方法でデータ項目を表示する機会を持っている:私は願ってい 、私は質問をunterstood正しく(rptGames_ItemCreated中)

<asp:Repeater ID="rptGames" runat="server" OnItemCreated="rptGames_ItemCreated"> 
    <HeaderTemplate> 
     <table> 
    </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td>Description:</td> 
       <td>Start time:</td> 
       <td>End time:</td> 
       <td>Game type:</td> 
       <td>Description:</td> 
       <td>Start time:</td> 
       <td>End time:</td> 
       <td>Game type:</td> 
      </tr> 
      <tr> 
       <td><%# Eval("Description") %></td> 
       <td><%# Eval("StartTime") %></td> 
       <td><%# Eval("EndTime") %></td> 
       <td><%# Eval("GameType") %></td> 
     </ItemTemplate> 
     <AlernatingItemTemplate> 
       <td><%# Eval("Description") %></td> 
       <td><%# Eval("StartTime") %></td> 
       <td><%# Eval("EndTime") %></td> 
       <td><%# Eval("GameType") %></td> 
      </tr> 
     </AlernatingItemTemplate> 

</asp:Repeater> 

:-)そして、背後にあるコードでこの時間は、あなたが</table>または</tr></table> ノートに自分のデータ項目の数に応じて、フッターのテンプレートを設定できます。私がテストしていませんこの

+0

ヘッダーを毎回繰り返す場合でも、元の例のように8列幅ではありません。 – zeroef

+0

ああ、今は難しそうです...(私が願っています):-)私は私の答えをもう一度編集しました... –

1

は、ヘッダにあなたのテーブルのヘッダー行を移動し、TR

<asp:Repeater ID="rptGames" runat="server"> 
    <HeaderTemplate> 
     <table> 
     <tr> 
      <td>Description:</td> 
      <td>Start time:</td> 
      <td>End time:</td> 
      <td>Game type:</td> 
     </tr> 
    </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
      <td><%# Eval("Description") %></td> 
      <td><%# Eval("StartTime") %></td> 
      <td><%# Eval("EndTime") %></td> 
      <td><%# Eval("GameType") %></td> 
      </tr> 
     </ItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 
+0

誰かが私のことをあまりにも下降させます。どうして?コメントを残すために気をつけますか? –

0

にカプセル化されたアイテムのそれぞれは、これを試してみてください:私の例で私が持っている

<asp:Repeater ID="rptGames" runat="server"> 
    <HeaderTemplate> 
     <table> 
    </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <th>Description:</th> 
       <th>Start time:</th> 
       <th>End time:</th> 
       <th>Game type:</th> 
       <th>Description:</th> 
       <th>Start time:</th> 
       <th>End time:</th> 
       <th>Game type:</th> 
      </tr> 
      <tr> 
      <td><%# Eval("Description") %></td> 
      <td><%# Eval("StartTime") %></td> 
      <td><%# Eval("EndTime") %></td> 
      <td><%# Eval("GameType") %></td> 
     </ItemTemplate> 
     <AlternatingItemTemplate> 
      <td><%# Eval("Description") %></td> 
      <td><%# Eval("StartTime") %></td> 
      <td><%# Eval("EndTime") %></td> 
      <td><%# Eval("GameType") %></td> 
      </tr> 
     </AlternatingItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 

唯一の問題があればということですレコード数が偶数でない場合は、</tr>の終了は印刷されず、テーブルが壊れてしまう可能性があります。私はあなたがコードの背後にあることを確認し、そのためのハックを追加することができると確信しています。おそらく実行時に変更できるliteralでしょうか?

このコードは、6つのレコードを次のような結果を生成しなければならない

UPDATE:

<table> 
    <tr> 
     <td>Description:</td> 
     <td>Start time:</td> 
     <td>End time:</td> 
     <td>Game type:</td> 
     <td>Description:</td> 
     <td>Start time:</td> 
     <td>End time:</td> 
     <td>Game type:</td> 
    </tr> 
    <tr> 
     <td>Data1</td> 
     <td>Data2</td> 
     <td>Data3</td> 
     <td>Data4</td> 
     <td>Data1</td> 
     <td>Data2</td> 
     <td>Data3</td> 
     <td>Data4</td> 
    </tr> 
    <tr> 
     <td>Description:</td> 
     <td>Start time:</td> 
     <td>End time:</td> 
     <td>Game type:</td> 
     <td>Description:</td> 
     <td>Start time:</td> 
     <td>End time:</td> 
     <td>Game type:</td> 
    </tr> 
    <tr> 
     <td>Data1</td> 
     <td>Data2</td> 
     <td>Data3</td> 
     <td>Data4</td> 
     <td>Data1</td> 
     <td>Data2</td> 
     <td>Data3</td> 
     <td>Data4</td> 
    </tr> 
    <tr> 
     <td>Description:</td> 
     <td>Start time:</td> 
     <td>End time:</td> 
     <td>Game type:</td> 
     <td>Description:</td> 
     <td>Start time:</td> 
     <td>End time:</td> 
     <td>Game type:</td> 
    </tr> 
    <tr> 
     <td>Data1</td> 
     <td>Data2</td> 
     <td>Data3</td> 
     <td>Data4</td> 
     <td>Data1</td> 
     <td>Data2</td> 
     <td>Data3</td> 
     <td>Data4</td> 
    </tr> 
</table> 

を。

+3

テーブルの見出しは、1回おきに繰り返されます。 – brenjt

+1

@brenjt - それはデザインごとです。) "私は見出し2を何度も何度も繰り返す必要があります(データ項目と共に)" – zeroef

+0

あなたは正しいです、私は作者のコメントを見ませんでした。 – brenjt

関連する問題