GridView "GridView1" активировал событие PageIndexChanging, которое не обрабатывалось
Я создал:
- одна главная страница и одна страница контента под названием Detail.
- Включение события Click Button, отображение данных в режиме сетки.
- В режиме сетки столбцы автогенерируются.
- Я хотел показать 11 столбцов в виде сетки, но это больше, чем страница
размер.
Что делать для этого?
Я создал вспомогательный файл sql для кода подключения к базе данных и вызываю этот метод, не используя sqldatasource для подключения.
Когда я пытаюсь выполнить подкачку, получаю ошибку:
GridView 'GridView1' выпустил событие PageIndexChanging, которое не было обрабатываются.
Ответы
Ответ 1
Вам нужно объявить метод для вашего кода, который обрабатывает событие PageIndexChanging.
Что-то похожее на это:
protected void GridView1_PageIndexChanging (object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
bindGridView(); //bindgridview will get the data source and bind it again
}
private void bindGridView()
{
GridView1.DataSource=getData();
GridView1.DataBind();
}
Предоставление примера кода:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
bindGridView(); //bindgridview will get the data source and bind it again
}
protected void Page_Load(object sender , EventArgs e)
{
if(!IsPostBack)
bindGridView();
}
//this is some sample data
private void bindGridView()
{
DataTable t = new DataTable();
t.Columns.Add("Col1");
t.Columns.Add("Col2");
DataRow r = null;
for (int i = 0; i < 25; i++)
{
r = t.NewRow();
r.ItemArray = new object[] { "Val" + i, " Another " + i };
t.Rows.Add(r);
}
GridView1.DataSource = t;
GridView1.DataBind();
}
И это разметка:
<asp:GridView OnPageIndexChanging="GridView1_PageIndexChanging" AllowPaging="true" PageSize="10" ID="GridView1" runat="server" AutoGenerateColumns="true">
Производит следующее:
![enter image description here]()
Ответ 2
Для пейджинга вы можете использовать OnPageIndexChanging для этого....
Пример
вы должны использовать OnPageIndexChanging = "gvdetails_PageIndexChanging" в своем GridView...
Вы должны написать ниже код в событие в коде, как
protected void gvdetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvdetails.PageIndex = e.NewPageIndex;
BindData();
}
Для более подробной информации вы можете проверить приведенную ниже ссылку здесь. Я использую страницу Изменение индекса в моей статье...
Здесь я использую PageIndexChange
Я надеюсь, что это поможет вам... Поделитесь этим с другими... Спасибо!
Ответ 3
Это окончательный ответ:
Imports System.Collections.Generic ' library
Protected Sub grdEmployees_PageIndexChanging1(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewPageEventArgs) Handles grdEmployees.PageIndexChanging
grdEmployees.PageIndex = e.NewPageIndex
LoadEmployeeList() 'FUNCTION FOR DATASET
grdEmployees.DataBind()
End Sub
Ответ 4
Чтобы исправить это, мне пришлось более внимательно изучить мой источник данных и datakeys. У меня есть набор записей, возвращаемых с SQL Server, и то, что я делаю, связывает их с POCO. У этого класса было несколько общедоступных свойств типа Integer. Эти целые числа были моими datakeys на сетке. Вместо этого я заменил их тип на строку, чтобы обойти проблему кастинга.
Ответ 5
вы просто добавляете это в свой код:
protected void GridViewTrsEmail_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridViewTrsEmail.PageIndex = e.NewPageIndex;
GridViewTrsEmail.DataBind();
}