我需要为datalist控件进行分页。我将显示(6列* 5行)。所以一旦记录超过,它应该转到下一页 可以任何人给代码如何实现这一个。因为我们需要内置的数据控制分页 谢谢
答案 0 :(得分:-1)
查看DataList控件的RepeatColumns属性,可以以经典方式完成分页。 :
DataList1.RepeatColumns = 6;
DataList1.RepeatDirection = RepeatDirection.Horizontal;
答案 1 :(得分:-1)
对于Datalist Paging使用PagedDataSource,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();
}