Событие CheckBox не может найти функцию JavaScript - PullRequest
2 голосов
/ 16 ноября 2011

У меня есть несколько элементов управления, предназначенных для проверки определенных данных, прежде чем пользователь может выполнить мягкое удаление данных сервера.

Ошибка:

Сообщение об ошибке компилятора: CS1061: «ASP.editdivision_aspx» не содержит определения для «show_confirm» и не найден метод расширения «show_confirm», принимающий первый аргумент типа «ASP.editdivision_aspx» (если вы пропустили использование директива или ссылка на сборку?)

Line 28:         <td><asp:TextBox runat="server" ID="txtDivisionName"  Width="250"  /></td>
Line 29:     </tr>
Line 30:     <tr><td><asp:CheckBox ID="chkDelete" runat="server" Text="Delete" OnCheckedChanged="show_confirm" /></td></tr>
Line 31:     <tr><td><asp:Button ID="btnSave" runat="server" Text="Save" OnClick="SaveClick" /></td></tr>
Line 32: </table>

Сценарий:

<script type="text/jscript" >
function show_confirm() {
    PageMethods.VerifyDelete(CallSuccess, CallFailed);
}
function CallSuccess(res, destCtrl) {}
function CallFailed(res, destCtrl) {
    var r = confirm("There are active Campaigns in this Division!\nAre you sure you want to proceed?");
    if (r == true) {
        PageMethods.Save();
        //alert("Division and related Campaigns deleted.");
    }
}
</script>

Мне не удалось определить, почему я получаю эту ошибку во время выполнения. Я новичок в asp и javascript, поэтому я уверен, что это что-то простое, что я пропустил, но я искал 2 дня, в чем проблема.

Ответы [ 2 ]

3 голосов
/ 16 ноября 2011

Атрибут OnCheckedChanged требует обработчик событий на стороне сервера, а не функцию javascript.

Попробуйте атрибут onchange, который является стандартным атрибутом html для события на стороне клиента:

<asp:CheckBox ID="chkDelete" runat="server" Text="Delete" onchange="show_confirm()" />

Редактировать:

Кажется, asp.net генерирует элемент и применяет 'onchange' к промежутку, а не к.

Найден этот пост, посвященный этой проблеме: Добавление обработчика обмена на стороне клиента в элемент управления ASP.NET CheckBox

0 голосов
/ 22 апреля 2016

Вот что у меня сработало, onchange и OnClientClick не сработали, onclick сделал:

    <asp:CheckBox ID="EnabledCheckBox" runat="server" OnClick="showDiv(this.checked);"/>
<div id="ShowDiv">Show me now</div>

Javascript:

function showDiv(show) {
  if (show) {
    $('#ShowDiv').show("slow");
  } else {
    $('#ShowDiv').hide("slow");
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...