コードは次のとおりです。
if (roomGender == "M")
{
if (gender == "F")
{
row.Cells[5].BackColor = Color.FromName("#FF0000");
args.IsValid = false;
vldGender.ErrorMessage = building +" " + room + ": You cannot place a female in this space";
}
else
{
vldGender.ErrorMessage = "";
}
}
//end male gender check
//Female gender check
if (roomGender == "F")
{
if (gender == "M")
{
row.Cells[5].BackColor = Color.FromName("#FF0000");
args.IsValid = false;
vldGender.ErrorMessage = building +" " + room + ": You cannot place a male in this space";
}
else
{
vldGender.ErrorMessage = "";
}
}
//end female gender check
//Validate Names
string last = ((TextBox)row.FindControl("txtLast")).Text;
string first = ((TextBox)row.FindControl("txtFirst")).Text;
if (last == "" && first != "")
{
row.Cells[3].BackColor = Color.FromName("#FF0000");
args.IsValid = false;
vldLast.ErrorMessage = building +" " + room + ": The last name cannot be blank";
}
else
{
vldLast.ErrorMessage = "";
}
if (last != "" && first == "")
{
row.Cells[4].BackColor = Color.FromName("#FF0000");
args.IsValid = false;
vldFirst.ErrorMessage = building +" " + room + ": The first name cannot be blank";
}
else
{
vldFirst.ErrorMessage = "";
}
if (last != "" && first != "" && gender == "")
{
row.Cells[5].BackColor = Color.FromName("#FF0000");
args.IsValid = false;
vldGender2.ErrorMessage = building +" " + room + ": A gender must be selected";
}
else
{
vldGender2.ErrorMessage = "";
}
if (!(regLast.IsValid))
{
row.Cells[3].BackColor = Color.FromName("#FF0000");
regLast.ErrorMessage = building +" " + room + ": The last name is incorrect, please check the name";
}
if (!(regFirst.IsValid))
{
row.Cells[4].BackColor = Color.FromName("#FF0000");
regFirst.ErrorMessage = building +" " + room + ": The first name is incorrect, please check the name";
}
}
}
}
私の問題 これは、ifステートメントの1つが検証に失敗したときにifステートメントを使用しているため、ifステートメントがその行で停止します。そのため、その行の残りのフィールドは検証されません。
フィールドの名、名前、性別があります。
性別ではなく、名と名前を追加するのを忘れた場合。
この検証では、名が欠落していることだけが表示されます。名が修正されるまで、名はチェックされません。
両方のフィールドが同時にチェックされるように、この問題を解決する方法はありますか?