gridview 행 명령 편집 및 삭제를 사용하고 있습니다. 언급 된대로 특정 행 데이터가 텍스트 상자에 표시되는 링크를 클릭하면범위를 벗어나는 인덱스 해결 오류
1 루프 작동하지만 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
그런데'else' 블록에 여는 중괄호가 없습니다 ... – Marlon
GrdBuilding.Rows.Count> = index와 같은 인덱스를 사용하여 확인하십시오. –