Поместите код загрузки вашей страницы под !IsPostBack()
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
con = new SqlConnection(ConfigurationManager.AppSettings["Connection"]);
gridfil();
}
}
Причина: Каждый раз, когда вы нажимаете на номер страницы и хотите просмотреть другую страницу, страница будет отправляться назад, а ваш page load event
срабатывает до grid_view_PageIndexChanging
, и он перепривязывает вид сетки, и ваше событие будет потеряно, и оно не будет запускать событие PageIndexChanging.
Во-вторых, измените это и просмотрите комментарии
protected void grid_view_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gridfil(); // First bind the gridview
grid_view.PageIndex = e.NewPageIndex; // then change the page Index
}