#asp.net #page-index-changed
#asp.net #страница-индекс-изменен
Вопрос:
Я создал:
- одна главная страница и одна страница содержимого с именем Detail.
- Событие нажатия кнопки, отображающее данные в виде таблицы.
- В представлении сетки столбцы генерируются автоматически.
- Я хотел показать 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">
Приводит к этому:
Комментарии:
1. я сделал это, но никакого эффекта. защищенная пустота GridView1_PageIndexChanging(отправитель объекта, GridViewPageEventArgs e) { // строка s1 = «выбрать * из master»; //DataSet ds = SqlHelper. GetDataSet(CommandType.Text, s1, «master»); // Таблица данных = ds.Tables[«master»]; //если (таблица.Строки. Count> 0) //{ // GridView1.DataSource = ds; // GridView1.DataBind(); //} GridView1. pageIndex = e.NewPageIndex; //Привязать сетку GridView1.DataBind(); } и aspx-файл
2. @JuiTest опубликуйте этот код в своем ответе, а не в качестве комментария. Более полезно увидеть это там.
3. Я не могу ответить на собственный вопрос.
4. @JuiTest извините, я имел в виду добавить этот код к вашему собственному вопросу .
Ответ №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:
вы просто добавляете это в свой код :
protected void GridViewTrsEmail_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridViewTrsEmail.PageIndex = e.NewPageIndex;
GridViewTrsEmail.DataBind();
}
Ответ №5:
Чтобы исправить это, мне пришлось более внимательно изучить мой источник данных и ключи данных. У меня есть набор записей, которые возвращаются с SQL Server, и то, что я делал, — это привязка их к POCO. У этого класса было несколько общедоступных свойств типа Integer. Эти целые числа были моими ключами данных в сетке. Вместо этого я заменил их тип на строку, чтобы обойти проблему с приведением.
Комментарии:
1. Вероятно, это был бы лучший комментарий. Это мало что добавляет к принятому ответу.