我正在尝试使用 ASP.NET 动态数据实体创建一个网站,我需要在我的网站中设置一个复选框,必须选中该复选框才能插入新记录。但是我无法验证复选框。我已经尝试过人们在此网站上发布的服务器端自定义验证器,但由于某种原因,它们无法正常工作..如果它是动态数据实体应用程序,是否有任何线索知道实现是否会有所不同?
这些是我迄今为止尝试过的不同的事情:
尝试1:
新建了一个类:
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
public class MustBeTrueAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
return value != null && value is bool && (bool)value;
}
}
然后通过以下方式从元数据文件中调用它:
[MustBeTrue(ErrorMessage="错误")]
公共布尔 Checkbox12 { 获取;放; }
那是行不通的。
然后我尝试了别的东西:
尝试2:
在 aspx 页面上:
<asp:DynamicControl ID="MyCheckbox" runat="server" DataField="Checkbox12" Mode="Insert" />
<asp:CustomValidator runat="server" ID="cvIsActive" OnServerValidate="cvIsActive_ServerValidate">You must select the checkbox</asp:CustomValidator>
在 aspx.cs 页面上:
protected void cvIsActive_ServerValidate(object source,ServerValidateEventArgs args)
{
if(args.Value.Length==1)
args.IsValid = true;
else
args.IsValid = false;
}
第二次尝试给我错误信息,无论它是否被点击。我尝试将 args.value.length 替换为:
args.IsValid = MyCheckBox.Checked
但是,这会给出一个错误,即名称 MyCheckBox 在当前上下文中不存在
非常感谢!