2015-06-18 5 views
1

Перед загрузкой я сделал это на aspx-файле в gridview;Bootbox подтвердить: вернуть результат клиента, чтобы сделать postback to rowCommand

<asp:Button ID="btnDelete" CssClass="btn btn-danger" OnClientClick="if(!confirmDelete()) return false;" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CausesValidation="false" CommandName="DeleteRow" Text="Delete"/> 

и on js file;

function confirmDelete() { 
return confirm("Are you sure you want to delete the record?"); } 

И с подтверждением запускается RowCommand gridview, и удаление выполняется.

С багажником я действительно застрял. Я знаю, что bootbox является асинхронным и пытается использовать 'preventDefault', но это не сработало. Итак, как я могу преобразовать указанный выше js-файл в версию bootbox? Спасибо заранее.

ответ

4

Я, наконец, придумал это решение;

function confirmDelete(sender) { 
    if ($(sender).attr("confirmed") == "true") {return true;} 

    bootbox.confirm("Are you sure you want to delete?", function (confirmed) { 
     if (confirmed) { 
      $(sender).attr("confirmed", confirmed).trigger("click"); 
     } 
    }); 

return false; 
} 

И изменение кнопки OnClientClick;

OnClientClick="return confirmDelete(this);" 
1

Я попытался Fatih Bilginer решения, но это требует еще щелчка, чтобы сделать постбэк, поэтому я изменил .trigger("click") для sender.click();

EDIT

function confirmDelete(sender) { 
    if ($(sender).attr("confirmed") == "true") {return true;} 

    bootbox.confirm("Are you sure you want to delete?", function (confirmed) { 
     if (confirmed) { 
      $(sender).attr('confirmed', confirmed); 
      sender.click(); 
     } 
    }); 

return false; 
} 
1

Я делаю некоторые изменения в dannyzar код, я использовал callback: для вызова функции

, и я добавил некоторые из них ign to bootbox modal

function confirmDelete(sender) { 
      if ($(sender).attr("confirmed") == "true") { return true; } 

      bootbox.confirm({ 
      message: "Are you sure you want to delete?", 
      buttons: { 
       confirm: { 
        label: 'Yes', 
        className: 'btn btn-success' 
       }, 
       cancel: { 
        label: 'No', 
        className: 'btn btn-danger' 
       } 
      } 
      ,callback: function (confirmed) { 
       if (confirmed) { 
        $(sender).attr('confirmed', confirmed); 
        sender.click(); 
       } 
      }}); 

      return false; 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^