怎么用错误提供商在运行时间以及有关联的任何控制验证
-
28-09-2019 - |
题
我试图建立一个验证一可重复使用的方式。
目的: 让的验证控制可重复使用。
错误提供者应与控制传动态,并可以被设定或清除在运行时间。
当用户请按击事件后所有的控制得到验证了与他们自己的错误提供者。
public bool IsFieldEmpty(ref TextBox txtControl, Boolean SetErrorProvider,string msgToShowOnError)
{
ErrorProvider EP = new ErrorProvider();
if (txtControl.Text == string.Empty)
{
if(SetErrorProvider==true)
EP.SetError(txtControl, msgToShowOnError);
return true;
}
else
{
if(SetErrorProvider==true)
EP.Clear();
return false;
}
}
问题:
每次的功能是所谓的新errorprovider象创造了它,我不想要的。每一个控制不应该有超过1错误提供者我应该能够搜索它只是喜欢做了asp.net 搜索一些控制在一个页面上。
我怎么可以这样做
解决方案
在大多数情况下你真的只需要一个实例ErrorProvider上的一种形式。
E.g。
ErrorProvider errorProvider1 = new ErrorProvider();
或者只是将一个从该工具箱到的形式。
打电话时,一个ErrorProvider,你源的控制和信息,,
errorProvider1.SetError (dateTimePicker1, "HEY BAD DATE");
到明显的错误...
errorProvider1.SetError (dateTimePicker1, "");
因此,一个ErrorProvider实例是你真正需要,在大多数情况下。
其他提示
在这样的属性内部进行制作,并每次您需要新的ErrorProvider访问该属性
private ErrorProvider _ErrorProvider = null;
//PropertyOnDemand
private ErrorProvider ErrorProviders
{
get
{
if (_ErrorProvider == null)
{
_ErrorProvider = new ErrorProvider();
return _ErrorProvider;
}
else
return _ErrorProvider;
}
}
public bool IsFieldEmpty(ref TextBox txtControl, Boolean SetErrorProvider, string msgToShowOnError)
{
if (txtControl.Text == string.Empty)
{
if (SetErrorProvider == true)
ErrorProviders.SetError(txtControl, msgToShowOnError);
return true;
}
else
{
if (SetErrorProvider == true)
ErrorProviders.Clear();
return false;
}
}
不隶属于 StackOverflow