对于一个档案输入框,有很多输入框是需要输入数据的,但有时候我们会在输入的时候遗留一些必填的项,如果不做数据校验,这时候点击保存按钮,就悲剧了,报错不说,我们前面填写的数据也就没有了。
所以数据校验非常重要。
有的项目一个界面有很多项需要校验,如果我们一个一个写校验方法,代码重复冗余太严重,不利于阅读。这时候我们回想,如果有一个方法能把所有的项都校验就好了。
有这样的方法吗?答案肯定是肯定的。
我这里有相同类型的控件集体校验的方法。
1、TextBox集体校验
private void CheckTextBoxNotEmpty(ref bool isOK, params TextBox[] textboxes)
{
foreach (TextBox tb in textboxes)
{
if (string.IsNullOrEmpty(tb.Text.Trim()))
{
isOK = false;
tb.Background = Brushes.Red;
}
else
{
tb.Background = null;
}
}
}
如果有的TextBox为空,就会把控件的背景色设成红色。
2、ComboBox集体校验
private void CheckComboBoxNotEmpty(ref bool isOk, params ComboBox[] comboBoxes)
{
foreach (ComboBox cb in comboBoxes)
{
if (cb.SelectedIndex < 0)
{
isOk = false;
cb.Effect = new DropShadowEffect { Color=Colors.Red};
}
else
{
cb.Effect = null;
}
}
}
下面是对方法的调用:
bool isOk = true;//数据检验是否通过
CheckTextBoxNotEmpty(ref isOk, txtName, txtAddr.......);
CheckComboBoxNotEmpty(ref isOk, cbGender, cbMarriage......);
if (!isOk) //如果没有通过数据合法性检查,则不保存
{
return;
}
如果是其他的控件也可以套用这些方法。