Я добавил более одного сообщения об ошибке проверки для каждого текстового поля в виде сетки.
Это код, который я использовал:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" HorizontalAlign="Center" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Price" >
<ItemTemplate>
<asp:TextBox ID ="TextBox3" runat="server" Width="80px" DataField="Product_Price" Text='<%#string.Format("{0:0.00}",Eval("Product_Price"))%>'/>
<asp:Label ID="Label4" Text="AUD" runat="server"></asp:Label>
<asp:Button ID ="Button11" runat="server" OnClick="Price_Update_Click" ValidationGroup="UpdatePrice" CommandArgument="Button11" CommandName="Update" Text="Update" />
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="TextBox3" ErrorMessage="Must be greater than 0.09" Operator="GreaterThan" Type="Currency" ValueToCompare="0.09" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Numbers with only 2 digits after decimal" ControlToValidate="TextBox3" ValidationExpression="^\d{1,9}\.\d{1,2}$"></asp:RegularExpressionValidator>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity" >
<ItemTemplate>
<asp:TextBox ID ="TextBox4" runat="server" Width="60px" DataField="Product_Quantity" Text='<%#Eval("Product_Quantity")%>' />
<asp:Button ID ="Button12" runat="server" OnClick="Quantity_Update_Click" ValidationGroup="UpdateQuantity" CommandArgument="Button12" CommandName="Update" Text="Update" />
<asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="TextBox4" ErrorMessage="Must be greater than 0" Operator="GreaterThan" Type="Integer" ValueToCompare="0" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ErrorMessage="Numbers only but no decimals" ControlToValidate="TextBox4" ValidationExpression="^[0-9]*$"></asp:RegularExpressionValidator>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Для проверки TextBox3 , это значения, которые я тестировал:
Сценарий 1: Я ввожу 0,00, я получаю следующее сообщение об ошибке: «Должно быть больше 0,09»
Сценарий 2: Я ввожу 0,08, получаю следующее сообщение об ошибке: «Должно быть больше 0,09»
Сценарий 3: Я ввожу 0,09, получаюследующее сообщение об ошибке: «Должно быть больше 0,09»
Сценарий 4: Я ввожу 1, получаю следующее сообщение об ошибке: «Числа, состоящие только из 2 цифр после десятичных знаков»
Сценарий 5: Я ввожу 250, я получаю следующее сообщение об ошибке: «Числа только с 2 цифрами после десятичной дроби»
Сценарий 6: Я ввожу 1,555, Я получаю 2 сообщения об ошибке одновременно: «Должно быть больше 0,09» «Числа только с 2 цифрами после десятичной дроби.»
Сценарий 7: Я ввожу abcd, одновременно получаю 2 сообщения об ошибке: «Должно быть больше 0,09» «Числа, содержащие только 2 цифры после десятичного знака».
Следовательно, для TextBox3 , основываясь на том, что я ввел для Сценарий 6 и Сценарий 7 .. Я хочу получить только одно сообщение об ошибке: «Числа только с 2 цифрами после десятичных знаков». "
Чтобы проверить TextBox4 , я проверил следующие значения:
Сценарий 1: Я ввожу 0, получаюследующее сообщение об ошибке: «Должно быть больше 0»
Сценарий 2: Я ввожу 0,5, я получаю 2 сообщения об ошибке одновременно: «Должно быть больше 0» «Только цифрыно без десятичных знаков "
Сценарий 3: Я ввожу 10,5, я получаю 2 сообщения об ошибке одновременно:" Должно быть больше 0 "" Только цифры, но не десятичные дроби "
Сценарий 4: Я ввожу abcd, одновременно получаю 2 сообщения об ошибках: «Должно быть больше 0» «Только цифры, но нетдесятичные дроби "
Поэтому для TextBox4 , основываясь на том, что я ввел для Сценарий 2 , Сценарий 3 и Сценарий 4 .. Я хочу получить только одно сообщение об ошибке: «Только числа, но не десятичные дроби».
Следовательно, для TextBox3 мне нужно исправить только Сценарий 6 и Сценарий 7 .
С другой стороны, для TextBox4 мне нужно исправить только Сценарий 2 , Сценарий3 и Сценарий 4
Если в моем .aspx-коде есть какая-либо незначительная ошибка, было бы полезно, если бы было предложено рекомендуемое синтаксическое решение.