用DataList可以在一个页面显示多条记录,数据显示的方式可以由程序员自己定,很自由,就是他没有分页功能,他的分页需要程序员自己动手
我在小木头留言簿(user1/9/archives/2006/2474.html)里就是使用DataList的,那里面,我使用了存储过程分页
如果我又想像DataList一样自由控制显示格式,又不想自己写分页的东西,那就可以使用GridView的模版列了
GridView,我一直到刚才都觉得他就是一个电子表,他是用电子表的格式显示数据的,一列一个数据
刚才我因为想实现那个功能,我想到在GridView里添加模版列插入一个FormView,再在GridView的RowDataBinded事件里,对FormView绑定数据,这种方法实现了我想要的功能,利用GridView的分页功能,也利用了FormView自由的显示格式
后来我看源代码的时候,我就想到,如果我不要FormView,我直接把所有控件插入到GridView的模版列里呢?
我做了,我也成功了,代码:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="bid" DataSourceID="sdsList" HorizontalAlign="Center" Width="98%" ShowHeader="False">
<Columns>
<asp:TemplateField HeaderText="bid" InsertVisible="False" SortExpression="bid">
<ItemTemplate>
<table border="0" align="center" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="120" valign="top" align="left">
发 言 人:<asp:Label ID="truenameLabel" runat="server" Text='<%# Bind("truename") %>'></asp:Label><br />
发言时间:<br />
<asp:Label ID="btimeLabel" runat="server" Text='<%# Bind("btime", "{0:yyyy-MM-dd hh:mm:ss}") %>'></asp:Label>
</td>
<td width="1" bgcolor="#ffffff"></td>
<td width="5"></td>
<td align="left" valign="top">
项目:<asp:Label ID="Label2" runat="server" Text='<%# Bind("pna") %>'></asp:Label><br />
标题:<asp:Label ID="titleLabel" runat="server" Text='<%# Bind("title") %>'></asp:Label><br />
内容:<asp:Label ID="infoLabel" runat="server" Text='<%# Eval("info").ToString().Replace("\n","<br>") %>'></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>