2013-10-16 2 views
7

Ho un Modal Popup (bootstrap) che visualizza i contenuti in base alla selezione dell'utenteri-formato la finestra di dialogo modale in bootstrap dinamicamente

Questo è il codice javascript che ho utilizzato per controllare la selezione utenti

PlayerMP.getFunctionalDetails = function (type, UserID, SessionID, SessionNo) { 
$.ajax({ 
    type: "GET", 
    url: PlayerMP.URL, 
    data: "rt=4&type=" + type + "&UserID=" + UserID + "&SessionID=" + SessionID + "&SessionNo=" + SessionNo, 
    success: function (FunctionalSplitsJS) { 
     if (FunctionalSplitsJS.indexOf("SessionExpired=1", 0) == -1) { 

      $("#divFunctionalDetails").html(FunctionalSplitsJS); 
      switch (type) { 
       case 1: 
        $("#divFunctionalsSplit");  //the table goes out of the modal window       
        break; 
       case 2: 
        TallyFunctionalSheet(); 
        $("#divFunctionalsSplit"); 
        break; 
       case 3: 
        $("#divFunctionalsSplit"); 
        break; 
      }     

      $("#divFunctionalsSplit").modal('show'); 
     } 
     else 
      window.location.href = "../Login.aspx?SessionExpired=1"; 
    } 
}); 
} 
  • il primo caso ha un tavolo WHI si suppone che ch sia visualizzato all'interno del popup modale ma che la tabella vada fuori dalla finestra modale (c'è un problema con la larghezza della finestra modale ma il table-responsive sembra funzionare) Ma quando ridimensiono il browser in modo che corrisponda alla larghezza del tablet il tavolo/ridimensionamento automatico modale per abbinarsi.
  • La larghezza del 2 ° e del 3 ° caso del modale sembra funzionare correttamente.

Questo è il codice per il thats finestra modale viene chiamato

<div class="modal fade" id="divFunctionalsSplit" tabindex="-1" role="dialog" aria-hidden="true"> 
     <div class="modal-dialog"> 
      <div class="modal-content"> 
        <div class="modal-body"> 
        <div class="table-responsive"> 
         <div id="divFunctionalDetails"></div> 
         </div> 
        </div> 
        <div class="modal-footer"> 
        <button type="button" class="btn btn-primary" data-dismiss="modal">Done</button> 
        </div> 
      </div> 
     </div> 
</div> 
  • Browser FullScreen Full screen image
  • ridimensionata Browser Resized Image
+0

@FlorentHemmi che puntano era il mio riferimento. l'ho già fatto Ancora no go – jayeshkv

+0

Hai mai capito niente ??? – Luminous

+0

non mi dispiace @Luminoso. – jayeshkv

risposta

18

Per impostazione predefinita, boottrap imposta la larghezza della finestra di dialogo .modal su 600px (schermi di grandi dimensioni sopra 768 px) o automatica (schermi piccoli). Il codice qui sotto sovrascrivere questo:

$('#myModal').on('shown.bs.modal', function() { 
    $(this).find('.modal-dialog').css({width:'auto', 
           height:'auto', 
           'max-height':'100%'}); 
}); 

(basata su: https://stackoverflow.com/a/16152629/2260496)

Per renderlo più dinamico sarà necessario per calcolare la larghezza (larghezza jQuery() o innerWidth()) della tabella e impostare la larghezza della finestra di dialogo modale che la definisce.

See: http://bootply.com/88364

+4

è esattamente quello che ho usato e non funziona ancora. – jayeshkv

+0

vedere: http://bootply.com/88364 –

0

Ho avuto lo stesso problema e ha scoperto che il problema non era il modal in sé. Ho aggiunto un ID per ogni elemento all'interno del e tramite CSS aggiungo solo una larghezza: 100% a tutti loro.

Ha funzionato per me.

+1

questo può essere usato come una soluzione sporca. – jayeshkv

2

Modificare questo al codice

<div class="modal-dialog" style="width: 95%"> 

e questo

<div class="table-responsive" style="width:100%"> 
2

Se si imposta display: table; all'interno del div tenendo modale che sarà ridimensionare di conseguenza. La mia modal è trascinabile e non viene ridimensionata quando si modifica la dimensione del browser, ma questa è l'unica soluzione praticabile che ho trovato per le dimensioni modali dinamiche.

12

questo ha lavorato per me atleast:

.modal-dialog{ 
    position: relative; 
    display: table; /* <-- This makes the trick */ 
    overflow-y: auto;  
    overflow-x: auto; 
    width: auto; 
    min-width: 300px; 
} 
+0

Brillante. Funziona perfettamente. Non è necessario per qualsiasi javascript. –

1
$('#myModal').on('shown.bs.modal', function() { 
    $(this).find('.modal-dialog').addClass('modal-lg'); 
}); 
+2

per favore aggiungi una spiegazione. –

+0

Sembra che stia dicendo di aggiungere la classe 'modal-lg'. – vapcguy