簡體   English   中英

索引超出了asp.net gridview的范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM