2011-08-02 26 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> 

而且如果分隔符模板剛剛應用到最後,它會很好用。 那麼是否讓這個模式對每個數據項使用單獨的表工作的唯一方法是?或者有什麼方法可以用一張桌子完成我的目標?

+0

感謝所有的答案,但他們不創建我想要的表。我需要將標題2一遍又一遍地重複(以及數據項),如示例中所示。 (記住標題模板只能打印一次) –

+0

哦,我在那裏弄錯你了。我更新了我的答案並考慮了您的意見 –

回答

0

您需要將<tr>放入您的項目模板(也是交替項目模板)(不是標題)。

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

然後調整自己的分隔符的模板:

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

試試這樣說:

更新:要重複標題(如每個操作的評論),修改它像這樣(加如果需要更多列,請更多td s到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

你可以嘗試寫在HeaderTemplate中的表頭,並在ItemTemplate ;-)

編輯行:首先,我想你想你的標題在標題中只能和每行代表數據項目。所以,我建議如下代碼:

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

現在,您的評論後要重複每一個數據項上面的頭,我建議如下:

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

注意:您使用的AlternatingItemTemplate也代表一個數據項目。利用這一點,你必須以不同方式顯示數據項的每一個項目(通常使用奇數不同的背景顏色,甚至行號)

編輯2的機會: 我希望,我unterstood問題正確這次:-)

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

而且在後面的代碼(在rptGames_ItemCreated),你可以頁腳取決於您的數據的項目數的模板設置爲</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

有人也downvote我也。爲什麼?謹慎發表評論? –

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

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

表格標題將每隔一個迭代重複一次。 – brenjt

+1

@brenjt - 這是每個設計。我閱讀了項目需求;)「我需要重複一遍又一遍的標題(以及數據項)」 – zeroef

+0

你是對的,我沒有看到作者的評論。 – brenjt