Я хотел переопределить всплывающие окна javascript по умолчанию с помощью мода Bootstrap. Но я не могу заставить его работать с собственностью ASP.net для большинства элементов управления: «OnClientClick».ASP.NET с Bootstrap modal как подтверждение javascript
Вот содержание ASPX отношение:
<asp:TemplateField>
<ItemTemplate>
<asp:Button runat="server" Text="Delete" CssClass="btn btn-danger fullwidth"
OnClientClick="return confirm('Are you sure?')" CommandName="Delete" />
</ItemTemplate>
</asp:TemplateField>
А вот JavaScript:
window.confirm = function (message, callback, caption) {
confirmResponse = undefined
caption = caption || 'Confirm'
message = message.replace("\n", "<br />");
var modalContainer, modalHeader, modalBody, modalFooter;
/* Create modal if doesnt allready exists (to avoid dublicate modals) */
if ($("#confirmation-modal").length != 1) {
modalContainer = $('<div>').attr({ 'class': 'modal fade', 'id': 'confirmation-modal' });
var modalDialog = $('<div>').attr({ 'class': 'modal-dialog' });
var modalContent = $('<div>').attr({ 'class': 'modal-content' });
modalHeader = $('<div>').attr({ 'class': 'modal-header' });
modalBody = $('<div>').attr({ 'class': 'modal-body' });
modalFooter = $('<div>').attr({ 'class': 'modal-footer' });
modalContainer.html($(modalDialog));
modalDialog.html($(modalContent));
modalContent.html($(modalHeader));
modalContent.append($(modalBody));
modalContent.append($(modalFooter));
} else {
modalContainer = $("#confirmation-modal");
modalHeader = $("#confirmation-modal .modal-header");
modalBody = $("#confirmation-modal .modal-body");
modalFooter = $("#confirmation-modal .modal-footer");
}
/* Set content of modal */
modalHeader.html('<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button><h4 class="modal-title">' + caption + '</h4>');
modalBody.html('<p>' + message + '</p>');
var modalTrueBtn = $('<button type="button" class="btn btn-default">Yes</button>').click(function() {
if (callback != undefined) callback();
console.log("confirm returned true");
return true;
});
var modalFalseBtn = $('<button type="button" class="btn btn-primary" data-dismiss="modal">No</button>').click(function() {
console.log("confirm returned false");
return false;
});
modalFooter.html(modalTrueBtn).append(modalFalseBtn);
/* show modal */
modalContainer.modal();
};
Часть кода, который создает модальное прекрасно. Это всплывает нормально, но он не возвращает true/false.
посмотреть на [Bootbox.js] (HTTP: // bootboxjs .com /), я недавно начал использовать его для подтверждения диалогов и других вещей. Его очень простой в использовании, который минимальный код – Mivaweb
Я читал о Bootbox почти каждый раз, когда искал решение для своей проблемы, но я хотел, чтобы я мог себя стилизовать. Но спасибо за ответ – CoBolt