GridView-仅在第二页中超出范围
本文关键字:二页 中超 范围 GridView- | 更新日期: 2025-05-08 14:07:35
我正在尝试传递行的索引。。。而且效果很好。。。但我的gridview启用了分页功能,例如,当我在第二页中使用索引时,我会出现超出范围的错误。。但我收到的索引是正确的。例如我第一页4行,第二页4行。。如果我点击第二页的第一项,我得到了索引5……这是正确的。我有8个itens。。。为什么指数5超出了范围?
这是我的代码:
<asp:GridView ID="GridView1" runat="server" CellPadding="4"
BorderStyle="None" BorderWidth="0px" CellSpacing="1" Width="100%"
GridLines="Vertical" AllowPaging="True" onrowcommand="GridView1_RowCommand"
onselectedindexchanged="GridView1_SelectedIndexChanged"
onpageindexchanging="GridView1_PageIndexChanging"
onrowdatabound="GridView1_RowDataBound" PageSize="5" HorizontalAlign=Left
>
<PagerStyle HorizontalAlign="Center" />
<RowStyle CssClass="tabela_texto2" HorizontalAlign="Center"
VerticalAlign="Middle" />
<AlternatingRowStyle CssClass="tabela_texto1" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button Text="Status" CommandName="atender" CommandArgument='<%# Container.DataItemIndex %>' ID="atender" runat="server" OnClientClick="return confirm('Tem certeza que deseja aterar os status?');" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button Text="Ver no mapa" CommandName="ver" CommandArgument='<%# Container.DataItemIndex %>' ID="ver" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button Text="Excluir" CommandName="excluir" CommandArgument='<%#((GridViewRow)Container).RowIndex%>' ID="excluir" runat="server" OnClientClick="return confirm('Tem certeza que deseja aterar os status?');" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
出现错误的行是:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
string commandname = e.CommandName;
int index = int.Parse(e.CommandArgument.ToString());
if (commandname.Equals("atender"))
{
string id = GridView1.Rows[index].Cells[3].Text //this line is getting error.
}
}

这可能是一个变通方法:
int index = int.Parse(e.CommandArgument.ToString()) % GridView1.PageSize