我需要对datalist控件进行分页。我将显示(6列*5行)。因此,一旦记录被超过,它应该转到下一页,任何人可以给出代码如何实现这一点。由于我们没有内置的数据列表控件分页功能,谢谢!
发布于 2009-11-17 20:36:25
查看DataList控件的RepeatColumns属性,分页可以通过经典的方式完成。:
DataList1.RepeatColumns = 6;
DataList1.RepeatDirection = RepeatDirection.Horizontal;发布于 2016-03-18 20:04:06
对于使用PagedDataSource的DataList分页,PagedDataSource用于为数据绑定控件提供分页工具,如Datalist、Repeater、DataGrid、GridView、DetailsView和FormView,这些控件允许它执行分页。例如,创建SQL表
CREATE TABLE [dbo].[tbl_category](
[catid] [int] IDENTITY(1,1) NOT NULL,
[categoryname] [nvarchar](100) NOT NULL,
CONSTRAINT [PK_tbl_category] PRIMARY KEY CLUSTERED
(
[catid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]Default.aspx页面容器
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("categoryname") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>
<asp:label id="lblCurrentPage" runat="server"></asp:label>
<asp:LinkButton ID="lbtnPrev"
Runat="server" onclick="lbtnPrev_Click">Prev</asp:LinkButton>
<asp:LinkButton ID="lbtnNext"
Runat="server" onclick="lbtnNext_Click">Next</asp:LinkButton>后面的下一个代码
protected void Page_Load(object sender, EventArgs e)
{
ItemsGet();
}
private void ItemsGet()
{
string qry = "select catid, categoryname from tbl_category";
SqlConnection con = new SqlConnection(a.dbConnection());
SqlDataAdapter da = new SqlDataAdapter(qry, con);
DataTable dt = new DataTable();
da.Fill(dt);
PagedDataSource pgsrc = new PagedDataSource();
pgsrc.DataSource = dt.DefaultView;
pgsrc.AllowPaging = true;
pgsrc.PageSize = 3;
pgsrc.CurrentPageIndex = CurrentPage;
DataList1.DataSource = pgsrc;
DataList1.DataBind();
lblCurrentPage.Text = "Page: " + (CurrentPage + 1).ToString() + " of " + pgsrc.PageCount.ToString();
}
public int CurrentPage
{
get
{
// look for current page in ViewState
object o = this.ViewState["_CurrentPage"];
if (o == null)
return 0; // default page index of 0
else
return (int)o;
}
set
{
this.ViewState["_CurrentPage"] = value;
}
}
protected void lbtnPrev_Click(object sender, EventArgs e)
{
// Set viewstate variable to the previous page
CurrentPage -= 1;
// Reload control
ItemsGet();
}
protected void lbtnNext_Click(object sender, EventArgs e)
{
// Set viewstate variable to the next page
CurrentPage += 1;
// Reload control
ItemsGet();
}https://stackoverflow.com/questions/1748557
复制相似问题