Repeater一行顯示資料庫中多行表記錄

來源:互聯網
上載者:User

有時候我們希望讓資料庫中的多行記錄用一行來顯示,比如每5個記錄行合并為一行顯示。這裡用Repeater綁定資料顯示為例(又是Repeater,怎麼樣,他的威力不同一般吧。真的是愛死他了。)

我這裡有兩種方法,經過測試,都成功了。

第一種方法:

沒得說,首先推薦最簡單的一種方法。代碼如下:

<div style="width:1000px;">
<asp:Repeater ID="filenamelist_repeater" runat="server">
<headertemplate>
</headertemplate>
<ItemTemplate>
<div style="float:left;width:200px; height:150px">
<%# Eval("CLASSNAME") %>
</div>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
</div>

一行顯示多少個由外<div>的width:1000px,和內<div>的width:200px來確定。此例中是一行顯示5條記錄(每個記錄佔200px)。 另外style="float:left"這個要設

置。這樣一行顯示完5條記錄後就會自動換行了。(怎麼樣,簡單的很吧。就是簡單了用了一點點CSS+div而已)

第二種方法:

另一種方法就比較傳統了。把記錄行都放入<table>裡。每輸入5行記錄後(假設一行顯示資料表記錄5行記錄),在Repeater裡動態添加<tr><tr>使其換行。用這種方法去實現似乎也很理所當然,但是知道怎麼去實現嗎?代碼如下:

<asp:Repeater runat="server" id="repeater1" OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table width="100%" border=0 align="center"><tr>
</HeaderTemplate>
<ItemTemplate>
<td><%#Eval("綁定欄位")%></td>
</ItemTemplate>
<FooterTemplate>
</tr></table>
</FooterTemplate>
</asp:Repeater>

後台代碼:

//在Repeater中的ItemDataBound事件裡動態添加<tr>使其換行。

protected int i=0;
protected void Repeater1_ItemDataBound(object src,RepeaterItemEventArgs e)
{
if(i%5==0)

{
e.Item.Controls.Add(new LiteralControl("</tr><tr>")); //動態添加<tr> 使其換行。看清楚了,這裡是</tr><tr> 我並沒有糊塗
}
i++;

}

兩種方法一比較,很顯然第一種方法非常的簡單。只要前台處理下就行了。但第二種方法也不複雜,而且也符合邏輯。

下面我簡單分析下兩種方法的優勢

第一種最簡便,而且可能還可以解決多個表顯示的問題。比如結合我之前所說的Repeater嵌套使用。讓多個表裡面的多個行合并顯示(上述所說的都是“一表多行合并顯示”, 如何“多表多行合并顯示”可以參考《Repeater控制項裡的大智慧之Repeater的嵌套使用》)。

第二種不用考慮太多樣式的設計,而且不像第一種方法在<div>裡直接設定的width為px。第一種方法可能會在不同的顯示器,顯示的資料會在螢幕不同的地方。但我們還是可以通過CSS樣式來解決顯示問題。 第二種方法很適合“一表多行合并顯示”,當然也可以“多表多行合并顯示”。只要外面的Repeater和嵌套在裡面的Repeater控制項都激發ItemDataBound事件即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.