推荐用ListView空间,因为datalist默认无法分页,而Listview可以很容易分页。
先看Listview下面的代码:ListView主要是模板,LayoutTemplate定义其中结果显示为table。GroupItemCount表示一行显示3个(也就是一行tr里,有3个td)。
td里的内容是ItemTemplate定义的内容。
GroupTemplate保持这样就可以了。
asp:DataPager 是在Listview外面的,定义分页,每页PageSize="5"
PagedControlID="ListView1"把Listview和datapager关联起来。
<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1"GroupItemCount="3">
<LayoutTemplate>
<table id="groupPlaceholderContainer" runat="server" style="">
<tr id="groupPlaceholder" runat="server">
</tr>
</table>
<tr runat="server">
<td runat="server" ></td>
</tr>
</LayoutTemplate>
<GroupTemplate>
<tr id="itemPlaceholderContainer" runat="server">
<td id="itemPlaceholder" runat="server"></td>
</tr>
</GroupTemplate>
<ItemTemplate>
<td runat="server" style="">username:
<%# Eval("username") %>
<br />
<%# Eval("id") %>
</td>
</ItemTemplate>
</asp:ListView>
<asp:DataPager ID="DataPager1" PageSize="5" PagedControlID="ListView1" runat="server">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" />
</Fields>
</asp:DataPager>
如果用三层,就写一个业务方法,是读取数据的一个方法,比如返回值是ilist类型的,或者实体类型的,然后拖拽DataList和ObjectDataSource控件,在ObjectDataSource控件上绑定那个业务方法,再用DataList控件绑定ObjectDataSource控件,再编辑下你想要的列或样式就ok了。如果不用三层,可能就是用dataset\datatable之类的查询了,那就需要手动绑定DataList了,把datatable给DataList,this.DataList1.DataSource=dt这样的,就ok了
DataList 查询到的数据 返回DataSet 或者DataTable. 类型的话 直接循环呗foreach(DataRow dr in dataset.Table[0].Rows)
{
//执行其他
}
在datalist itemdatabound事件里做查询
请检查你的sql语句 条件是怎么写的。。 没加条件的话 最后出来肯定只有一条数据。。
而且是数据库中几条数据 第一天数据显示几次 为何?这个问题确实不明白你是什么意思。。
琢磨了半天 还是理解不了 请详说。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)