UserControl CustomValidator вызывает внешний Javascript - PullRequest
0 голосов
/ 04 мая 2018

У меня есть пользовательский элемент управления с сеткой данных. Мне нужно проверить некоторые текстовые поля внутри, вызвав мой файл Javascript для выполнения сравнения, когда пользователь сохранит свои модификации. (это вызовет мой валидатор, если это не так, всплывающее окно покажет)

Мой ASPX:

<script type="text/javascript" src='/scripts/production_cost.js'></script>

<ContentTemplate>
  <asp:DataGrid ID="ProdCostGrid" runat="server" AutoGenerateColumns="False" BorderColor="#f0f0f0" BorderStyle="None" BorderWidth="0px" CellPadding="0">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<Columns>
   <asp:BoundColumn Visible="False" DataField="Id" HeaderText="Id"></asp:BoundColumn>
     <asp:TemplateColumn>
       <ItemTemplate>
       Amount:&nbsp;<asp:TextBox ID="ProductionCostLineField" Text='<%# ToText(Eval("ProductionCostEuro")) %>'
                                                TabIndex="24" runat="server" Width="80px" MaxLength="13"></asp:TextBox>&nbsp;EUR
                                        </ItemTemplate>
                                        <ItemStyle Width="170px" HorizontalAlign="Right"></ItemStyle>
                                    </asp:TemplateColumn>
                              </Columns>
                            </asp:DataGrid>
//here I am suppose to put my Validator
<asp:CustomValidator ID="AmountCustomValidator" runat="server" Display="None" ErrorMessage="Amount must be filled" ClientValidationFunction="ValidateAmount" />
                        </ContentTemplate>

Мой Javascript в другой папке:

function ValidateAmount(source, args) {
args.IsValid = true;
$('input[id*="ProductionCostLineField"]').blur(function () {
    var amount = this.value;
    $('input[id*="ProductionCostInvoiceToLineField"]').each(function () {
        var textInvoicedBy = this.value;
        if (amount == '' || amount == '0') {

        } else {
            if (this.value != '' || amount == '' || amount == '0') {
                args.IsValid = true;
            }
            if ((amount != '' || amount != '0') && textInvoicedBy == '') {
                alert("You must inform the field 'Invoiced By'");
                args.IsValid = false;
            }
        }
    });
});
}
...