首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当ASP.NET忽略CustomValidator时,您会怀疑什么?

当ASP.NET忽略CustomValidator时,您会怀疑什么?
EN

Stack Overflow用户
提问于 2008-11-11 19:35:47
回答 5查看 1.2K关注 0票数 0

这既是一个代码问题,也是一个代码维护问题,但是我有一个不再检查它的CustomValidator的WebForm。当我在一年多前最后一次接触代码时,它可以工作,但现在它不再工作了,因为用户已经请求了一些更改……

WebForm包含一个数据绑定下拉列表,其中包含一个默认的“- All -”项,其值为String.Empty。当用户单击submit按钮时,验证器应该检查下拉菜单的值不是String.Empty。我已经在客户端验证代码和服务器验证代码中设置了断点,但都没有触发。

你会从哪里开始寻找呢?常见的嫌犯是什么?当然,我已经将我的工作副本与源代码控制中的副本进行了比较,但没有任何可疑之处。

以防万一,下面是我的代码:

代码语言:javascript
复制
<asp:DropDownList ID="_AssessmentDropDown" runat="server" DataSourceID="_AssessmentsData" CausesValidation="true" AutoPostBack="false"
    DataTextField="AssessmentName" DataValueField="AssessmentName" OnDataBound="_HandleAssessmentsBound">
</asp:DropDownList>
<asp:CustomValidator ID="_AssessmentValidator" runat="server" ClientValidationFunction="_HandleValidateAssessment_Client"
    ControlToValidate="_AssessmentDropDown" ErrorMessage="* You must select an Assessment."
    OnServerValidate="_HandleValidateAssessment" />
<asp:ObjectDataSource ID="_AssessmentsData" runat="server"
    OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
    TypeName="DataTableAdapters.GET_GRADE_ASSESSMENTSTableAdapter">
    <SelectParameters>
      <asp:ControlParameter Name="GRADECODE" ControlID="_GradeCodeDropDown" PropertyName="SelectedValue" />
    </SelectParameters>
</asp:ObjectDataSource>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-11-11 19:44:41

我注意到几个问题

  • 我认为您不需要CausesValidation=true如果AutoPostBack设置为false
  • 您不使用验证组,因此这不可能是原因
  • 为什么不使用false如果要在空字段上触发验证,请将ValidateEmptyText属性设置为true
票数 5
EN

Stack Overflow用户

发布于 2008-11-11 19:52:19

如果要验证的控件的值为空,则不会触发CustomValidator,因此CustomValidator应始终伴随RequiredFieldValidator

票数 1
EN

Stack Overflow用户

发布于 2008-11-11 19:38:08

一些故障排除步骤:

  • 这是窗体上唯一的验证器吗?
  • 是否在页面上启用了验证?
  • 是否为目标控件启用了验证?
  • 本身是否启用了验证器?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/281914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档