У меня есть пользовательский элемент управления с Datagrid. Мне нужно проверить некоторые текстовые поля внутри, вызвав мой файл 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: <asp:TextBox ID = "ProductionCostLineField" Text='<%# ToText(Eval("ProductionCostEuro")) %>'
TabIndex = "24" runat = "server" Width = "80px" MaxLength = "13"></asp:TextBox> 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;
}
}
});
});
}
@VDWWD ooops Я забыл удалить его! JavaScript работал с моим aspx, мне нужно было разобрать его и использовать CustomValidator! Скопировать и вставить...



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это работает только на самой странице aspx
<%=AddProdCostLine.ClientID%>