2016-03-16 63 views
1

我使用此代碼來獲取在GridView控件last row的索引,然後把空字符串在特定的細胞,但拋出錯誤:Index out of range爲什麼索引超出範圍異常?

protected void grdViewAdvances_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     int RowIndex = grdViewAdvances.Rows.Count-1 ; 

     grdViewAdvances.Rows[RowIndex].Cells[5].Text = ""; 
    } 
+0

您在GridView中有多少列? – Adil

+0

@Adil Guess> = 5。 – tchelidze

+0

嘗試給3或4在單元格來檢查是否由於列或行 – Adil

回答

1

中的行數將被改變爲每一行RowDataBound事件。如果您想要更改最後一行的文本,則讓綁定過程完成並在RowDataBound之後分配空字符串。

您可能需要在DataBind()方法之後執行操作。

grdViewAdvances.DataSource = dt; 
grdViewAdvances.DataBind(); 
grdViewAdvances.Rows[RowIndex].Cells[5].Text = ""; 

編輯

我調試的代碼,如果你的語句有行計數爲零,從一箇中減去它會給你下排的時候就第一次執行的代碼= -1,肯定是不受約束的指數。

+0

感謝adil bhai – Stacky

+0

但我仍然不明白爲什麼databound事件失敗了?它應該已經給出了索引 – Stacky

+0

歡迎您,當RowDataBound被實際觸發時,當前行不會添加到GridView中。我希望你能理解它。 – Adil

相關問題