0

zu setzen Ich benutze die jquery unten, um zu steuern, was passiert, wenn eine Registerkarte in einem AjaxControlToolkit tabcontainer angeklickt wird. Wenn eine versteckte Texteingabe (hdnFormSaved) den Wert "True" hat, wird die angeklickte Registerkarte als aktiv gesetzt (this.get_owner().set_activeTab(this)), sonst wird ein Bestätigungsdialog erstellt. Die angeklickte Registerkarte wird erst dann als aktiv gesetzt, wenn sie über den Dialog bestätigt wurde.Bootstrap modal mit Tabpanel verwenden, um aktive Registerkarte

$(function() { 
    Sys.Extended.UI.TabPanel.prototype._header_onclick = 
     function (e) { 
      this.raiseClick(); 
       if ($("[id$=hdnFormSaved]").val() == "True") { 
        this.get_owner().set_activeTab(this); 
       } else { 
        if (confirm('Do you want to change tab?')) 
         this.get_owner().set_activeTab(this); 
        else 
         return false; 
       } 
     }; 
}); 

Diese Lösung funktioniert einwandfrei. Ich möchte jedoch den Bestätigungsdialog durch ein Bootstrap-Modal ersetzen.

<div class="modal" id="myModal" tabindex="-1" role="dialog"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <h4 class="modal-title">Warning</h4> 
      </div> 
      <div class="modal-body"> 
       <p>Do you want to change tab?</p> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       <button type="button" class="btn btn-primary">OK</button> 
      </div> 
     </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 
</div><!-- /.modal --> 

Ich habe so weit wie ein Modal in den Else-Block statt einen Bestätigungsdialog initialisieren. Von hier aus bin ich mir nicht sicher, wie ich vorgehen soll, um die angeklickte Registerkarte als aktiv zu setzen, wenn auf OK geklickt wird. Kann/sollte ich auf das Ereignis im selben else-Block warten?

$(function() { 
    Sys.Extended.UI.TabPanel.prototype._header_onclick = 
     function (e) { 
      this.raiseClick(); 
       if ($("[id$=hdnFormSaved]").val() == "True") { 
        this.get_owner().set_activeTab(this); 
       } else { 
        $('#myModal').modal(); 
       } 
     }; 
}); 

Jeder Rat ist willkommen. Vielen Dank.

Antwort

0

wie unten Gelöst:

$(function() { 
    Sys.Extended.UI.TabPanel.prototype._header_onclick = 
     function (e) { 
      this.raiseClick(); 
       if ($("[id$=hdnFormSaved]").val() == "True") { 
        this.get_owner().set_activeTab(this); 
       } else { 
        obj = this; 
        $('#myModal').modal(); 
         $("#btn_okay").on("click", $.proxy(function() { 
          this.get_owner().set_activeTab(this); 
         }, this)); 
     } 
    }; 
}); 

ich die modale OK Taste eine ID von #btn_okay und jQuerys verwendet gab proxy den Kontext der on anonyme Funktion zu übergeben.

Verwandte Themen