【发布时间】:2012-05-29 23:49:43
【问题描述】:
我正在尝试对数据进行分页。基本上我正在获取数据并希望在多页上显示它。但它不起作用。 我正在使用 Asp.net 和 C# 进行编码。我正在使用 mysql 作为数据库。
代码如下: ASP 代码
<asp:DataGrid runat="server" ID="RestData"
AllowPaging="True" PageSize="2"
OnPageIndexChanged="RestData_PageIndexChanged" AllowCustomPaging="True"
PagerStyle-Wrap="False">
<PagerStyle />
</asp:DataGrid>
C#代码:
protected void Page_Load(object sender, EventArgs e)
{
BindData();
}
public void BindData()
{
RestData.DataSource = call.GetReader(Convert.ToInt32(AreaData.SelectedValue));
//GetReader is function which returns the data reader of mysql
RestData.DataBind();
}
protected void RestData_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
RestData.CurrentPageIndex = e.NewPageIndex;
BindData();
}
输出: 它显示两行(因为我给了 pagesize 2)。但我看不到下一页。 查询应该返回超过 2 行(当我使用转发器时确实会发生这种情况,但我无法在其中进行分页。
请提供一些解决方案(我无法用任何其他解决方案解决我的问题 在这个论坛中,所以我创建了一个新的)
提前致谢。
【问题讨论】:
-
您是否尝试过使用
PageIndexChanging事件,这是您需要设置索引和绑定网格的地方。 -
但是在 DataGrid 中,我找不到像 PageIndexChanging 这样的事件。
-
不,你所做的只是正确的。它必须是
PageIndexChanged而不是PageIndexChanging。 -
您真的在做任何自定义分页...意味着自定义数据显示在您的页面中吗?如果没有,请从设计中删除您的
AllowCustomPaging="True"。 -
我遇到了同样的问题,在这里找到了解决方案,如果你采用这个代码,你可以让它工作stackoverflow.com/a/15685860/3966458
标签: c# asp.net datagrid paging page-index-changed