1

我正在尝试将 ASP.NET DataPager 控件链接到 ASP.NET ListView

<div>
    <asp:ListView ID="ListView1" runat="server">
        <ItemTemplate>
            <a href="#"><%#DataBinder.Eval(Container.DataItem,"LinkText")%></a>
        </ItemTemplate>           
    </asp:ListView>

    <asp:DataPager runat="server" ID="DataPager1" PagedControlID="ListView1" PageSize="2">
        <Fields>
            <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True" />
        </Fields>
    </asp:DataPager>        

</div>

在 Page_Load 我用 DataTable 加载 ListView

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack == false)
        {
            _fl.ConnectToSQLServer();

            DataTable dt = new DataTable();

            dt.Load(_fl.GetCategories());

            ListView1.DataSource = dt;
            ListView1.DataBind();

            _fl.DisconnectFromSQLServer();
        }
    }

数据显示正确,但 DataPager 无法正常工作

任何帮助将不胜感激。谢谢你。

4

1 回答 1

4

从 Page_Load 切换到 OnPreRender 以填充 ListView 并跳过 IsPostBack 检查

尝试

protected override void OnPreRender(EventArgs e)
{
            base.OnPreRender(e);
           _fl.ConnectToSQLServer();

            DataTable dt = new DataTable();

            dt.Load(_fl.GetCategories());

            ListView1.DataSource = dt;
            ListView1.DataBind();

            _fl.DisconnectFromSQLServer();   


}
于 2011-03-11T14:00:52.183 回答