Событие GridView, запущенное PageIndexChanging, которое не обрабатывалось
Я разрешил пейджинг и добавил коды ниже, но получил ошибку. Кто-нибудь знает, в чем проблема?
код:
protected void SubmitAppraisalGrid_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
SubmitAppraisalGrid.PageIndex = e.NewSelectedIndex;
SubmitAppraisalGrid.DataBind();
}
Дизайн:
<asp:GridView ID="SubmitAppraisalGrid" runat="server"
AutoGenerateColumns="False" BorderWidth="0px"
onrowcreated="SubmitAppraisalGrid_RowCreated" ShowHeader="False"
style="margin-right: 0px" AllowPaging="True" PageSize="1"
onselectedindexchanging="SubmitAppraisalGrid_SelectedIndexChanging">
</asp:GridView>
Ответы
Ответ 1
Если вы установили атрибут Allowview для gridviews в значение "true" и не обрабатываете событие PageIndexChanging
, тогда эта ошибка увеличивается.
Чтобы работать с пейджингом, добавьте обработчик события PageIndexChanging
в сетку и измените свою разметку и код как:
<asp:GridView ID="SubmitAppraisalGrid" runat="server"
AutoGenerateColumns="False" BorderWidth="0px"
onrowcreated="SubmitAppraisalGrid_RowCreated" ShowHeader="False"
style="margin-right: 0px" AllowPaging="True" PageSize="1"
onselectedindexchanging="SubmitAppraisalGrid_SelectedIndexChanging"
OnPageIndexChanging="SubmitAppraisalGrid_PageIndexChanging">
</asp:GridView>
///
protected void gvList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
SubmitAppraisalGrid.DataBind();
//bindGrid();
//SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
//SubmitAppraisalGrid.DataBind();
}
protected void SubmitAppraisalGrid_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
/// you selected index related logic here.
}
Это событие не возникает, когда вы программно устанавливаете свойство PageIndex.
Проверьте документацию MSDN Событие GridView.PageIndexChanging
Для справки:
Запущено событие GridView PageIndexChanging, которое не обрабатывалось
Ответ 2
Поместите свой код внутри Вкл. Событие PageIndexChanging
protected void SubmitAppraisalGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
SubmitAppraisalGrid.DataBind();
}
Дизайн:
<asp:GridView ID="SubmitAppraisalGrid" runat="server"
AutoGenerateColumns="False" BorderWidth="0px"
onrowcreated="SubmitAppraisalGrid_RowCreated" ShowHeader="False"
style="margin-right: 0px" AllowPaging="True" PageSize="1"
OnPageIndexChanging="SubmitAppraisalGrid_PageIndexChanging">
</asp:GridView>
Ответ 3
попробуйте
OnPageIndexChanging="SubmitAppraisalGrid_PageIndexChanging"
вместо
onselectedindexchanging="SubmitAppraisalGrid_SelectedIndexChanging"
protected void SubmitAppraisalGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
BindGrid();
}
Ответ 4
с помощью
SubmitAppraisalGrid.PageIndex = e.NewSelectedIndex;
вы должны использовать
SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
и если вы снова получите сообщение об ошибке, сообщите об ошибке.
Ответ 5
Шаг за шагом:
- Выберите gridview из дизайна и перейдите в свойство и запустите событие (PageIndexChanging)
- Код:
gridviewname.pageindex=e.NewPageIndex;
Ответ 6
Вам нужно вызвать событие изменения Pageindex из выбранного события изменения индекса выпадающего списка.
protected void PageDropDownList_SelectedIndexChanged(Object sender, EventArgs e)
{
// Retrieve the pager row.
GridViewRow pagerRow = SubmitAppraisalGrid.BottomPagerRow;
// Retrieve the PageDropDownList DropDownList from the bottom pager row.
DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");
// Set the PageIndex property to display that page selected by the user.
GridViewPageEventArgs evt = new GridViewPageEventArgs(pageList.SelectedIndex);
SubmitAppraisalGrid_PageIndexChanging(sender, evt);
}