ASP.NET DataPager - PullRequest
       19

ASP.NET DataPager

1 голос
/ 11 марта 2011

Я пытаюсь связать элемент управления 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 я загружаю ListView с DataTable

    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 делаетне работает как следует

Любая помощь будет оценена.Спасибо.

1 Ответ

4 голосов
/ 11 марта 2011

Переключитесь с 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();   


}
...