Как сделать так, чтобы два разных сообщения проверки работали отдельно в одном и том же текстовом поле в виде сетки в ASP.NET (ASPX)? - PullRequest
0 голосов
/ 14 сентября 2018

Я добавил более одного сообщения об ошибке проверки для каждого текстового поля в виде сетки.

Это код, который я использовал:

<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-коде есть какая-либо незначительная ошибка, было бы полезно, если бы было предложено рекомендуемое синтаксическое решение.

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете использовать свойство во всем валидаторе «Display = Dynamic» и попробовать его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...