gpt4 book ai didi

c# - 没有为 GridView ASP.NET 触发 OnPageIndexChanging 事件

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:04 26 4
gpt4 key购买 nike

我一直使用 Stack Overflow 寻求帮助,但我从来没有在这个网站上发布过我自己的问题。我对使用 ASP.NET Web 应用程序也不太熟悉。我有一个 GridView,它显示来自数据源的记录并允许分页以查看网格的不同页面。网格加载正常并正确显示数据。我遇到的问题是,当单击页码时,没有任何反应,而且我的断点没有被 Page_Load 或 OnPageIndexChanging 触发。在 MSDN 上,它表示在网格上选择页码时将触发 OnPageIndexChanging 事件,但这并没有发生。我已经尝试了我在网上找到的所有针对此问题的常规建议修复程序,但问题仍然存在。我在下面发布了我的代码。谁能告诉我什么可能导致此事件未被触发?提前致谢!

<asp:GridView ID="_grid" runat="server" AutoGenerateColumns="False" CellPadding="4" AutoPostBack="true"
ForeColor="#333333" GridLines="None" AllowSorting="True" EnableTheming="False" DataSourceID="vw_SpecFoodBuyerCodeDataSource" Width="100%" AllowPaging="true" OnPageIndexChanging="_grid_PageIndexChanging" OnSelectedIndexChanged="_grid_OnSelectedIndexChanged">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:TemplateField>
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</EditItemTemplate>
<HeaderTemplate>
<asp:CheckBox ID="_headerCheckBox" runat="server" AutoPostBack="True" OnCheckedChanged="_headerCheckBox_CheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="_rowCheckBox" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="SpecId" DataNavigateUrlFormatString="~/SpecPdf.aspx?SpecId={0}"
DataTextField="SpecNumber" HeaderText="Spec#" SortExpression="SpecNumber" />
<asp:BoundField DataField="Revision" HeaderText="Rev" SortExpression="Revision" />
<asp:BoundField DataField="SCNumber" HeaderText="SC#" SortExpression="SCNumber" />
<asp:BoundField DataField="SCDescription" HeaderText="SC Description" SortExpression="SCDescription">
<ItemStyle HorizontalAlign="Left" Wrap="False" />
</asp:BoundField>
<asp:BoundField DataField="VendorName" HeaderText="Supplier" SortExpression="VendorName" >
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="BuyerCode" HeaderText="Buyer" SortExpression="BuyerCode" />
<asp:BoundField DataField="ApprovedDate" HeaderText="Approved" DataFormatString="{0:d}" HtmlEncode="False" SortExpression="ApprovedDate" />
<asp:BoundField DataField="UpdateNeededDate" DataFormatString="{0:d}" HeaderText="Update Required&lt;br&gt;As Of" HtmlEncode="False" SortExpression="UpdateNeededDate" />
<asp:BoundField DataField="ApproveUpdateNeededDate" DataFormatString="{0:d}" HeaderText="Update Sent"
SortExpression="ApproveUpdateNeededDate" />
<asp:BoundField DataField="ReceivedUpdateNeededDate" DataFormatString="{0:d}" HeaderText="Update&lt;br&gt;Received" HtmlEncode="False" SortExpression="ReceivedUpdateNeededDate" />
</Columns>
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:LinqDataSource ID="vw_SpecFoodBuyerCodeDataSource" runat="server" ContextTypeName="PPQAD_QASpecFoodDataLinq.PPQAD_QASpecFoodDataContextManaged" EntityTypeName=""
OnSelecting="vw_SpecFoodBuyerCodeDataSource_Selecting" TableName="vw_SpecFoodBuyerCodes">
</asp:LinqDataSource>

和C#代码

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
_buyerCodeListBox.DataSource = WebHelpers.GetCachedBuyerCodes(Page);
_buyerCodeListBox.DataBind();
_grid.PageIndexChanging += new GridViewPageEventHandler(_grid_PageIndexChanging);
_grid.EnableViewState = true;
SelectBuyerCodesForCurrentUser();
_grid.DataBind();
}
}
protected void _grid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
_grid.PageIndex = e.NewPageIndex;
_grid.DataBind();
}

最佳答案

应该先评论再回答,但以我的名誉我不能。所以……

问题可能是因为您不想在 OnPageIndexChanging 上而是在 OnPageIndexChanged 上执行此操作。

问题也可能是因为您已将 _grid_PageIndexChanging 附加到 gridview Controller 的事件两次:第一次是在 .aspx 文件中的 Controller 定义中,第二次是在 Page_Load 中。但老实说 - 它无论如何都应该起作用(发射两次应该不会受伤)。但我认为这是因为您在进行错误研究后第二次附加了它。

此外,我建议您在 Page_Load 中而不是在 Page_Init 中执行所有操作。此事件处理程序在 Page_Load 之前,可以解决问题,因为在 Page_Load 上,gridview 可能已经呈现或已启动?

关于c# - 没有为 GridView ASP.NET 触发 OnPageIndexChanging 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31521382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com