当在第一页时,隐藏值可以被获取。所以,没有问题,但是在页面索引改变之后,隐藏的字段值不能被用户获得。它显示错误,是关于 “System.ArgumentOutOfRangeException” 试图让hiddenvalue如何在gridview中使用分页获得隐藏值
(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#侧
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。 – Culme
例如在第3页中,我的rowIndex值是13,当我点击链接按钮时,rowcommand函数也可以工作。 –