【发布时间】:2015-10-13 14:45:11
【问题描述】:
在第一页时,可以获取隐藏值。所以,没有问题,但是页面索引更改后,用户无法获取隐藏字段值。当试图获取隐藏值时,它会显示关于“System.ArgumentOutOfRangeException”的错误
(string sValue = ((HiddenField)GridView1.Rows[rowIndex].FindControl("HiddenField1")).Value;
asp端:
<Columns>
<asp:BoundField DataField="sayfa_adeti" HeaderText="SAYFA ADETİ" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="60px"></asp:BoundField>
</asp:BoundField>
<asp:HiddenField ID="HiddenField1" runat="server"Value='<%#Eval("ID")%>'</asp:HiddenField>
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
getOncekiFotokopiTalepler();//fillGrid
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
c#side
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
//int rowIndex = Convert.ToInt32(e.CommandArgument);
int rowIndex = Convert.ToInt32(e.CommandArgument.ToString().Trim());
if (e.CommandName == "Goruntule")
{
string sValue = ((HiddenField)GridView1.Rows[rowIndex].FindControl("HiddenField1")).Value;
GridViewRow gvRow = GridView1.Rows[rowIndex];
Session["SELECTED_FOTOKOPI_TALEP_ID"] = sValue;
Response.Redirect("~/fotokopiTalebimiGor.aspx");
}
}
【问题讨论】:
-
那么,如果您选择第 2 页的第 3 行,那么 rowIndex 的值是多少?我的猜测是,您正在获取数据源行索引并尝试将其应用于只有 1 页数据(即 10 个项目)的 gridview 行索引,并且您正在索引项目 13 - 例如。
-
代码失败时“rowIndex”的值是多少?更多代码会很有用,因为我们看不到您如何触发 RowCommand。例如,如果是通过链接按钮,您可以使用 LinkButton 的 CommandArgument 属性并将 THAT 设置为“ID”,而不是使用 HiddenField。
-
例如在第 3 页,我的 rowIndex 值为 13,当我点击链接按钮时,rowcommand 功能也起作用。
标签: c# asp.net gridview get pagination