2012-08-14 134 views
-3

我正在使用gridview行命令編輯和刪除。當我點擊那些特定行數據顯示在文本框上的鏈接時,就會提到。解決索引超出範圍錯誤

首先循環是工作,但對於e.CommandName == "deletevalue"顯示錯誤

索引超出範圍。必須是非負數且小於集合的大小

protected void GrdBuilding_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 

     int index = Convert.ToInt32(e.CommandArgument); 
     if (e.CommandName == "editvalue") 
     { 

      TxtBuildingid.Text = GrdBuilding.Rows[index].Cells[1].Text; 
      TxtBuildingCode.Text = GrdBuilding.Rows[index].Cells[2].Text; 
      TxtBuildingName.Text = GrdBuilding.Rows[index].Cells[3].Text; 
      DrpBuilding.Text = GrdBuilding.Rows[index].Cells[4].Text; 
      if (GrdBuilding.Rows[index].Cells[5].Text.ToString() == "True") 
      { 
       ChkisActive.Checked = true; 
      } 
      else 
      { 
       ChkisActive.Checked = false; 
      } 

      BtnSave.Text = "Update"; 
     } 



     else if (e.CommandName == "deletevalue") 
     { 
      TxtBuildingid.Text = GrdBuilding.Rows[index].Cells[1].Text; 
      TxtBuildingCode.Text = GrdBuilding.Rows[index].Cells[2].Text; 
      TxtBuildingName.Text = GrdBuilding.Rows[index].Cells[3].Text; 
      DrpBuilding.Text = GrdBuilding.Rows[index].Cells[4].Text; 
      if (GrdBuilding.Rows[index].Cells[5].ToString() == "True") 
      { 
       ChkisActive.Checked = true; 
      } 
      else 
       ChkisActive.Checked = false; 
      } 

      BtnSave.Text = "Delete"; 
     } 
+1

沒有關於'e.CommandName ==「deletevalue」'會拋出一個索引超出範圍異常(如果你想成爲技術,但不要對此假設挑剔)。該塊內的確切線會拋出錯誤? – Marlon 2012-08-14 05:42:45

+0

順便說一句,你缺少你的'else'塊中的開口大括號... – Marlon 2012-08-14 05:52:13

+0

在使用它之前檢查像這樣的GrdBuilding.Rows.Count> = index索引。 – 2012-08-14 05:55:42

回答

2

我們不能以「做到這一點,那麼它會工作」方面回答這個問題,因爲這個問題是不是在代碼你向我們展示。

我會盡力回答您可以做些什麼來發現問題。

您需要調試您的代碼。這是一個基本的程序,當我看到你的問題時,在我看來,你還沒有做到這一點。

  1. 對我來說,第一步就是在IDE的else if行上設置一個斷點。

  2. 當執行停在那裏,檢查e.CommandArgument

    值==>這是錯誤或不明確?

  3. 現在,返回到已調用GrdBuilding_RowCommand(...)的位置。 e.CommandArgument從哪裏來?關於如何設置價值的邏輯必須存在問題。

在那裏你會發現問題,找到另一個點在代碼中發生的事情,你不清楚。在那裏設置一個新的中斷點並逐步執行代碼,觀察創建e.CommandArgument的過程。

+0

我得到了結果.....我沒有爲linkbutton刪除調用CommandArgument ....感謝你的寶貴答覆鄉親;) – Basava 2012-08-14 07:06:15