Полагаю, что встроенный обработчик onclick нельзя удалить, поскольку он был выведен ASP.NET. Чтобы решить эту проблему, вам нужно переопределить метод doPostBack ASP.NET, чтобы внедрить вашу функцию до того, как произойдет обратная передача. Попробуйте включить на своей странице следующую функцию, а затем использовать ее для добавления обработчика событий:
Обновление: Просто перечитайте и поняли, что этот ответ немного не соответствует цели - он в основном позволяет запускать события перед обратной передачей, но не обязательно привязан к обработчику нажатия кнопки.
var addToPostBack = function(func) {
var old__doPostBack = __doPostBack;
if (typeof __doPostBack != 'function') {
__doPostBack = func;
} else {
__doPostBack = function() {
func();
old__doPostBack.apply(this, arguments);
}
}
};
...
<input type="button" id="btn" onclick="..." />
...
addToPostBack(function() { alert("You're posting back!"); });