在FormView EditItemTemplate,ASP-Panel内,AJAX面板内,Content-page内和Master-Page中的html-table(td)中使用ASP-TextBox 使用SAVE按钮验证文本框时,ValidationSummary显示错误的ErrorMessage。
ValSummary显示“输入的里程小于'<%= txtMileageRangeValidator.MinimumValue%>'英里”。
而不是“输入的里程少于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"
/>
但是,当ValidationSummary中出现错误时,它显示的完全如上所示 - 它不会将MinimumValue替换为错误文本。
我做错了什么? 感谢。
答案 0 :(得分:0)
除非禁用,否则RangeValidators在客户端验证,即没有回发,因此服务器端嵌入式脚本不会被重新呈现
如果您要重置textbox事件的最小值,那么您可以像对MinimumValue一样设置ErrororMessage,但是使用修改后的字符串格式
ErrorMessage='<%# Eval("aMileagePrev", "Mileage entered is less than {0:D} miles") %>'
但是现在我正在阅读更接近的东西。范围验证旨在检查最小值/最大值之间的值。您假设该值永远不会大于maxValue。如果始终如此,那么CompareValidator
设置为Type
且Integer
设置为Operator
LessThan
会更好地提供服务