来自http://msdn.microsoft.com/en-us/library/f5db6z8k(v=vs.100).aspx
我创建了一个customeValidators.cs页面,它检查输入的数据是否存在于Db中。 这有效。但是当我试图从必要的页面中调用它时
protected void runUniqueReference(object source, ServerValidateEventArgs args)
{
args.IsValid = (CustomValidators.UniqueReference(BOQRefTextBox.Text));
}
我收到CustomValidators.UniqueReference
的错误,无法将'数据注释'转换为'bool'
任何的想法?
EDIT;
public static ValidationResult UniqueReference(string Reference)
{
ContextDB db = new ContextDB();
var lisStoredInDB =
(from Bill in db.Bill_Of_Quantities
where Bill.Reference == Reference
select Bill.Reference).ToList();
if (lisStoredInDB.Count != 0)
{
return new ValidationResult(string.Format("This reference is already stored in the database, Please enter another"));
}
return ValidationResult.Success;
}
答案 0 :(得分:1)
args.IsValid
的类型为bool
,CustomValidators.UniqueReference
不得返回该类型的值。因此,
args.IsValid = (CustomValidators.UniqueReference(BOQRefTextBox.Text));
将无效,因为您无法将UniqueReference
的返回值分配给IsValid
。
由于UniqueReference
返回ValidationResult
,因此它应该如下所示:
args.IsValid = (CustomValidators.UniqueReference(BOQRefTextBox.Text)).IsValid;