我觉得这是一堆你知道我的意思。它有效,但我觉得我在页面生命周期(加载和回发)甚至我在每个 if 语句中的冗余方面都做得过火了。
会发生什么:
- 此方法在页面加载时调用(无论是回发还是其他)
- 如果用户提交表单,它会减少他们的总积分(这些单选按钮下方有一个按钮,允许他们提交和申请积分)。
因此,我也在用户声明点(提交)之后立即调用此方法,这会将这些点从他们下次的总数中删除。因此,根据他们帐户中的总积分,我需要在上次提交页面刷新后启用/禁用这些单选按钮
private void SetPointsOptions()
{
int totalPoints = customer.TotalPoints;
rbn200Points.Text = "200 pts";
rbn250Points.Text = "250 pts";
rbn400Points.Text = "400 pts";
rbn500Points.Text = "500 pts";
rbn600Points.Text = "600 pts";
// clear state of radio buttons & disable submit
if (totalPoints < 200)
{
rbn200Points.Enabled = false;
rbn250Points.Enabled = false;
rbn400Points.Enabled = false;
rbn500Points.Enabled = false;
rbn600Points.Enabled = false;
rbn200Points.Checked = false;
rbn250Points.Checked = false;
rbn400Points.Checked = false;
rbn500Points.Checked = false;
rbn600Points.Checked = false;
btnClaimRewardPoints.Enabled = false;
return;
}
if(totalPoints >= 200 && totalPoints < 250)
{
rbn200Points.Enabled = true;
}
else if(totalPoints >= 250 && totalPoints < 400)
{
rbn200Points.Enabled = true;
rbn250Points.Enabled = true;
}
else if(totalPoints >= 400 && totalPoints < 500)
{
rbn200Points.Enabled = true;
rbn250Points.Enabled = true;
rbn400Points.Enabled = true;
}
else if(totalPoints >= 500 && totalPoints < 600)
{
rbn200Points.Enabled = true;
rbn250Points.Enabled = true;
rbn400Points.Enabled = true;
rbn500Points.Enabled = true;
}
else if(totalPoints >= 600)
{
rbn200Points.Enabled = true;
rbn250Points.Enabled = true;
rbn400Points.Enabled = true;
rbn500Points.Enabled = true;
rbn600Points.Enabled = true;
}
}