當在第一頁時,隱藏值可以被獲取。所以,沒有問題,但是在頁面索引改變之後,隱藏的字段值不能被用戶獲得。它顯示錯誤,是關於 「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函數也可以工作。 –