我正在使用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";
}
沒有關於'e.CommandName ==「deletevalue」'會拋出一個索引超出範圍異常(如果你想成爲技術,但不要對此假設挑剔)。該塊內的確切線會拋出錯誤? – Marlon 2012-08-14 05:42:45
順便說一句,你缺少你的'else'塊中的開口大括號... – Marlon 2012-08-14 05:52:13
在使用它之前檢查像這樣的GrdBuilding.Rows.Count> = index索引。 – 2012-08-14 05:55:42