[英]index was out of range in asp.net gridview
我正在創建一個Web應用程序,其中有一個gridview,並且在預渲染方法上,我有以下代碼
protected void dgvEdit_PreRender(object sender, EventArgs e)
{
if (this.dgvEdit.EditIndex != -1)
{
FileUpload fp = (FileUpload)dgvEdit.Rows[dgvEdit.EditIndex].FindControl("fpTask");
if (fp != null)
{
// You can apply condition here
fp.Enabled = true;
}
}
}
但頁面顯示錯誤
索引超出范圍。 必須為非負數並且小於集合的大小。 參數名稱:索引
說明:執行當前Web請求期間發生未處理的異常。 請查看堆棧跟蹤,以獲取有關錯誤及其在代碼中起源的更多信息。
異常詳細信息:System.ArgumentOutOfRangeException:索引超出范圍。 必須為非負數並且小於集合的大小。 參數名稱:索引
在這條線上
第329行:FileUpload fp =(FileUpload)dgvEdit.Rows [dgvEdit.EditIndex] .FindControl(“ fpTask”);
以下代碼有什么問題
顯示此錯誤的原因是Line No 329
dgvEdit.Rows.Count<dgvEdit.EditIndex
。
您可以使用類似
if (this.dgvEdit.EditIndex != -1 && dgvEdit.Rows.Count>=dgvEdit.EditIndex)
{
FileUpload fp = (FileUpload)dgvEdit.Rows[dgvEdit.EditIndex].FindControl("fpTask");
if (fp != null)
{
// You can apply condition here
fp.Enabled = true;
}
}
注意:在服務器控件呈現到頁面之前,請使用PreRender
事件執行任何更新。 在此事件期間,可以保存服務器控件的視圖狀態的任何更改。 在渲染階段所做的此類更改將不會保存。
我認為您應該為此使用RowDataBound
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.