Если можно гарантировать, что приложение с 7 zip будет установлено (и в пути) на всех целевых машинах, можно разгрузиться путем вызова приложения 7z командной строки. Не самое изящное решение, но это - наименьшее количество работы.
Если вы посмотрите на сгенерированный исходный код, вы увидите следующее:
onclick="return confirm('Sure?'); __doPostBack('btnSubmit','')"
так что происходит то, что _doPostBack никогда не вызывается. Хакерский способ сделать то, что вы ищете, выглядит следующим образом:
<button type="button" runat="server" id="btnSubmit"
OnServerClick="btnSubmit_Click" onclick="if (confirm('Sure?')) ">
Настоящий правильный способ - использовать веб-контроль:
<asp:Button runat="server"
OnClick="btnSubmit_Click" OnClientClick="return confirm('Sure?')" Text="Submit" />
Похоже, событие onclick не всплывает.
Вы должны просто иметь возможность использовать
OnClientClick="return confirm('Sure?');
Я не думаю, что другой onClick может быть необходим.
Изменить:
Этот метод потребует от вас вручную привязать вашу функцию к событию OnClick.
Я придумываю атрибуты сегодня утром, поэтому в тщетной попытке искупить себя-
Другой метод - вставить javascript, чтобы поймать событие. Что-то вроде ..
$("form").submit(function() {
var resp = confirm("Save & Submit?");
if (resp) {
serializeStats();
return true;
}
else {
return false;
}
});
Я действительно помню, что существовал лучший встроенный способ сделать это. Время кофеина.
Я думаю, вы получаете то поведение, которое видите, потому что ваше подтверждение («уверен?») Возвращает false, что останавливает механизм обратной передачи. Это объясняет, почему это работает, когда у вас нет onclick.
Как насчет изменения типа кнопки для отправки, она работает хорошо:
<button type="submit" runat="server" id="btnSubmit"
OnServerClick="btnSubmit_Click" onclick="return confirm('Sure?');">
Submit
</button>
У меня было больше успешно с
<asp:Button ID="btnSubmit" runat="server" Text="Save" UseSubmitBehaviour="false"
OnClick="btnSubmit_Click" OnClientClick="if (!confirm('Sure?')) return" />