类别编码:<asp:TextBox runat="server" Id="ID_XB"/>(这是我定义的文本框)
下面是对它的验证:验证类别编码字段不能为空:
<asp:RequiredFieldValidator runat="server" ControlToValidate="ID_XB" ErrorMessage="类别编码字段不可以为空白!" Display="none" />下面是验证填入的类别编码是否和数据库中的有重复:
<% For I=0 To myDataList.Items.Count-1
Dim num As String = myDataList.DataKeys.Item(I)
%>
<asp:CompareValidator runat="server" ControlToValidate="ID_XB" ValueToCompare="<%=num%>" Type="String" Operator="NotEqual" ErrorMessage="类别编码不允许重复!" Display="none"/>
<% Next %>下面是用弹出框显示错误信息:
<asp:ValidationSummary runat="server" DisplayMode="BulletList" ShowMessageBox="True" ShowSummary="false" HeaderText="错误警告:" />
我的问题是:在没有CompareValidator 验证的时候一切正常,可是加入CompareValidator 验证后,就什么也不显示了,弹出框也没有了,如果输入相同的主键(类别编码),就会显示错误信息页,请教各位,这是怎么回事呀!请大家帮忙!
下面是对它的验证:验证类别编码字段不能为空:
<asp:RequiredFieldValidator runat="server" ControlToValidate="ID_XB" ErrorMessage="类别编码字段不可以为空白!" Display="none" />下面是验证填入的类别编码是否和数据库中的有重复:
<% For I=0 To myDataList.Items.Count-1
Dim num As String = myDataList.DataKeys.Item(I)
%>
<asp:CompareValidator runat="server" ControlToValidate="ID_XB" ValueToCompare="<%=num%>" Type="String" Operator="NotEqual" ErrorMessage="类别编码不允许重复!" Display="none"/>
<% Next %>下面是用弹出框显示错误信息:
<asp:ValidationSummary runat="server" DisplayMode="BulletList" ShowMessageBox="True" ShowSummary="false" HeaderText="错误警告:" />
我的问题是:在没有CompareValidator 验证的时候一切正常,可是加入CompareValidator 验证后,就什么也不显示了,弹出框也没有了,如果输入相同的主键(类别编码),就会显示错误信息页,请教各位,这是怎么回事呀!请大家帮忙!
<asp:TextBox runat="server" Id="ID_XB"/>
<asp:RequiredFieldValidator runat="server" ControlToValidate="ID_XB" ErrorMessage="类别编码字段不可以为空白!" Display="none" /></form>code behind or in your Page_Load code:protected HtmlForm form1;
dim cv as CompareValidator
For I=0 To myDataList.Items.Count-1
Dim num As String = myDataList.DataKeys.Item(I)
cv = new CompareValidator()
form1.Controls.Add(cv)
cv.ControlToValidate="ID_XB"
cv.ValueToCompare = num & ""
cv.Type = ValidationDataType.String
cv.Operator = ValidationCompareOperator.NotEqual
cv.ErrorMessage = "类别编码不允许重复!"
cv.Display = ValidatorDisplay.None
next
Sub Check_Null(sender As Object, e As ServervalidateEventArgs)
For I=0 To myDataList.Items.Count-1
Dim num As String = myDataList.DataKeys.Item(I)
If e.value = num Then
e.IsValid = false
Exit Sub
End If
Next
End Sub
<asp:CustomValidator runat="server" ControlToValidate="ID_XB" OnServerValidate="Check_Null" ErrorMessage="类别编码不允许重复!" Display="none"/>
<asp:ValidationSummary runat="server" DisplayMode="BulletList" ShowMessageBox="True" ShowSummary="false" HeaderText="错误警告:" />
但是ValidationSummary并不能用弹出框来显示错误信息,如果去掉设置 Display="none",则可以显示错误信息,还有一个问题,如果我用RequiredFieldValidator来验证是否输入为空,则可以弹出对话框,这是怎么回事呀!
2,思归说的没错,但我觉得你在插入数据时到数据库中去验证有没有重复更好。
用一条SQL即可select count(*) from tal where key=MyKey,记录数0可插入,否则不可。