在 FormView EditItemTemplate、ASP-Panel、AJAX 面板、内容页和母版页的 html-table(td) 中使用 ASP-TextBox,验证摘要在使用保存按钮验证文本框时显示错误的错误消息。
ValSummary 显示"输入的里程小于'<%= txtMileageRangeValidator.MinimumValue %>' miles"。
而不是"输入的里程少于 88123 英里"
文本框和验证器的标记如下:
<asp:TextBox ID="txtMileage" runat="server" Text='<%# Bind("Mileage") %>'
CssClass="ucIsRequired"
MaxLength="6"
AutoPostBack="True" OnTextChanged="txtMileage_TextChanged"
/>
<asp:RangeValidator ID="txtMileageRangeValidator" runat="server"
ControlToValidate="txtMileage"
Enabled="true"
Display="None"
MinimumValue='<%# Eval("aMileagePrev", "{0:D}")%>'
MaximumValue="999999"
SetFocusOnError="false"
Type="Integer"
ValidationGroup="valgrpDetails"
ErrorMessage="Mileage entered is less than '<%= txtMileageRangeValidator.MinimumValue %>' miles"
/>
但是,当错误出现在验证摘要中时,它完全按照上面列出的方式显示 - 它不会将最小值替换为错误文本。
我做错了什么?谢谢。
除非禁用,否则 RangeValidators 会在客户端进行验证,即没有回发,因此服务器端嵌入式脚本不会重新呈现
如果要重置文本框事件上的最小值,则可以像设置最小值一样设置错误或消息,但使用修改的字符串格式
ErrorMessage='<%# Eval("aMileagePrev", "Mileage entered is less than {0:D} miles") %>'
但是现在我正在仔细阅读其他东西。 范围验证旨在检查值是否介于最小值/最大值之间。您假设该值永远不会大于 maxValue。 如果总是如此,那么您最好使用Type
设置为 Integer
且Operator
设置为 LessThan
的CompareValidator