使用Datapager在asp.net中分页 - 接下来,上一个按钮

时间:2013-12-12 10:19:48

标签: c# javascript jquery asp.net

<div>
    <asp:ListView ID="listTexts" runat="server" OnDataBound="listTexts_DataBound">
        <ItemTemplate>
            <div>
                <span id="CommentedText">
                        <%# DataBinder.Eval(Container.DataItem, "Comment") %>
                    </span>
            </div>
</ItemTemplate>
 </asp:ListView>
<div>
 <asp:DataPager ID="DataPager" runat="server" PagedControlID="listTexts" PageSize="10">
<Fields>
        <asp:NextPreviousPagerField ShowNextPageButton="false" />
         <asp:NumericPagerField />
        <asp:NextPreviousPagerField ShowPreviousPageButton="false" />
</Fields>
</div>
</div>

这是我的.ascx文件中的代码 listTexts_DataBound的事件在.cs(代码后备)文件

protected void listTexts_DataBound(object sender, EventArgs e)
 {
     DataPager.Visible = (DataPager.PageSize < DataPager.TotalRowCount);
 }

当我运行代码时,我必须按下一个或上一个按钮两次才能移动到下一页或上一页。 我需要在第一次点击时发生这种情况。 假设有100页,并且最后有10个数字与第一个蚂蚁中的前一个,我必须点击两次,当我点击下一个时将页面从1移动到2,当我点击上一个时从第10页到第9页移动页面然而其余的导航即从2到9只会在第一次点击时发生。

请指导。 提前致谢

1 个答案:

答案 0 :(得分:0)

我们可以使用OnPreRender =“DataPager_PreRender”,在这种情况下我们可以分配数据并绑定。

<asp:DataPager ID="DataPager" runat="server" PagedControlID="ListView"
PageSize="5" OnPreRender="DataPager_PreRender">

这应该是背后的代码:

protected void DataPager_PreRender(object sender, EventArgs e)
{
            ListView.DataSource = db.datasource();
            ListView.DataBind();
}

这解决了问题