Rambler's Top100 ASP GridView: Разбивка на страницы при ручном указании DataSource на языке C#
Время - деньги!

Time is money!

  Rambler's Top100
С.Зубарев

ASP GridView: Разбивка на страницы при ручном указании DataSource на языке C#.

Вставляем элементGridView в страницу:

<asp:GridView ID="GridView1" runat="server" AllowPaging="true" PageSize ="10"

</asp:GridView>

В Page_Load указываем для него DataSource:

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

    {

    GridView1.DataSource = getDataSource();

    GridView1.DataBind();

    }

}


Запускаем программу. При попытке сменить страницу в GridView1 получаем исключение:

The GridView 'GridView1' fired event PageIndexChanging which wasn't handled

Добавляем обработку события PageIndexChanging:

<asp:GridView ID="GridView1" runat="server" AllowPaging="true" PageSize ="2" OnPageIndexChanging="GridView1_PageIndexChanging">

</asp:GridView>

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

{

GridView1.PageIndex = e.NewPageIndex;

}

При перезапуске программы исключение исчезло, однако при переключении страниц в GridView отображаются данные не изменяются. Дело в том, что т.к. мы указали DataSource вручную, то нужно в событии GridView1_PageIndexChanging опять его указать для GridView1:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

{        

    GridView1.DataSource = getDataSource();

    GridView1.PageIndex = e.NewPageIndex;

    GridView1.DataBind();

    }

После перекомпиляции программы все заработало.

Программные продукты

Открытые коды