asp.net|控制項|詳解 在學習DataGrid控制項和DataList控制項後,我們知道,DataGrid控制項對資料輸出格式是自動產生HtmlTable標記的,DataList控制項也是這樣,它根據資料內容來產生資料控製表格。而重複器控制項是模板化的資料繫結列表,重複器控制項是“無外觀的”,即:它不具有任何內建布局或樣式,也就不會產生任何資料控製表格來控制資料的顯示。因此,我們必須在控制項的模板中明確聲明所有 HTML 布局標記、格式標記和樣式標記。
在第一節裡我們也說過Repeater控制項是個輕量級的資料繫結控制項,一般用它來輸出要求相對簡單的資料,下面,我們利用這個控制項,做一個簡單的留言板。在這個留言板裡,我們充分利用Repeater控制項的控能,進行資料顯示,資料分頁,嵌入控制項響應事件等等。
首先,利用Access2003建立一個GuestbookData.mdb資料庫,包含一個資料表GuestMessage,資料表欄位屬性如圖9.16所示。
圖9.16 GuestMessage資料表的欄位屬性
一個功能完善的留言板應包括三個主要內容:
(1)、留言瀏覽
(2)、發表留言
(3)、留言管理(回複,刪除。有的還要求有審核功能)
我們來根據這三個功能來詳細介紹我們這個執行個體的編寫。
在DataCon Web 項目中新增一個WebForm表單,命名為Repeater_Sample.aspx,添加一個Repeater控制項,ID=“Repeater1”;三個Panel控制項,三個Panel控制項的ID分別是“login”,“reply”和“write”。
首先我們來看“留言瀏覽”功能的HTML布局代碼。在“留言瀏覽”部分我們要應用Repeater控制項,該控制項的屬性列、綁定設定以及嵌入控制項屬性如下,注意綁定資料的使用:
<TABLE id="Table2" style="WIDTH: 384px; TR: "
cellSpacing="0" cellPadding="0" width="384"
align="left" border="0">
<TBODY>
<TR borderColor="#009900">
<td><asp:linkbutton id="say" Runat="server">我要說兩句</asp:linkbutton></td>
</TR>
<TR>
<TD>
<asp:repeater id="Repeater1" runat="server">
<ItemTemplate>
<table width="400" border="1"
cellpadding="0" cellspacing="0"
bordercolor="#009966" style="FONT-SIZE: 12px">
<tr>
<td width="100" height="20">
暱稱:<%# databinder.eval(container.dataitem,"name" ) %></td>
<td width="300">
這是 <b><%# databinder.eval(container.dataitem,"name" ) %>
</b><%# databinder.eval(container.dataitem,"sex" ) %>於[<%# databinder.eval(container.dataitem,"senddate").tostring %>]的留言</td>
</tr>
<tr>
<td><%# "<img width=50 height=90 src ="+databinder.eval(container.dataitem,"face")+">" %></td>
<td><%# databinder.eval(container.dataitem,"content") %></td>
</tr>
<tr>
<td><%# "<img src=http://www.163design.net/n/i/image/ip.gif alt=IP:"+ databinder.eval(container.dataitem,"ip")+" >" %>
<%# databinder.eval(container.dataitem,"ip") %>
</td><td>
<%# "<a href=mailto:" & DataBinder.Eval(Container.DataItem,"Email") & ">給他發郵件</a>" %>
<asp:LinkButton Runat=server CommandName ="del" CommandArgument= '<%# DataBinder.Eval(Container.DataItem,"ID") %>' ID="Linkbutton1" NAME="Linkbutton1">刪除留言</asp:LinkButton>
<asp:LinkButton Runat=server CommandName ="reply" CommandArgument= '<%# DataBinder.Eval(Container.DataItem,"ID") %>' ID="Linkbutton2" NAME="Linkbutton1">回複留言</asp:LinkButton>
</tr>
</table>
</ItemTemplate>
<SeparatorTemplate>
<table width="400" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="400" background="image/bg01.gif"></td>
</tr>
</table>
</SeparatorTemplate>
</asp:repeater></TD>
</TR>
<TR borderColor="#009900">
<TD class="style2" style="FONT-SIZE: 12px" borderColor="#009900" align="right" colSpan="2"><asp:label id="pagesinfor" runat="server" Font-Size="X-Small"></asp:label>/<asp:linkbutton id="prevpage" runat="server" Font-Size="X-Small">[上一頁]</asp:linkbutton>
<asp:linkbutton id="nextpage" runat="server" Font-Size="X-Small">[下一頁] </asp:linkbutton>跳轉至第 <asp:dropdownlist id="pageslist" runat="server" AutoPostBack="True"></asp:dropdownlist>頁
</TD>
</TBODY>
</TABLE>
[1] [2] [3] [4] 下一頁