我正在使用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