2017-06-09 5 views
0

Ich möchte von Standard-HTML-Schaltfläche mit einer Datentabelle-Schaltfläche wechseln, wie kann ich das Bootstrap-Attribut data-target in eine Datentabelle-Schaltfläche hinzufügen?So fügen Sie bootstrap "data" attr in Datatabelle Schaltfläche hinzu

Jede Hilfe ist sehr

Bootstrap-Taste

<button 
    data-toggle="modal" data-target="#create_new_workorder" 
    type="button" class="btn btn-sm btn-warning btn-outline"><span 
    class="hidden-md hidden-sm hidden-xs">Create Workorder</span> <i 
    class="fa fa-fw fa-plus"></i> 
</button> 

Daten-Tabelle Knopf geschätzt:

buttons: [ 
    { 
     text: 'New', 
     action: function() { 
      create_workorder_window(); 
     }, 
     className: 'btn btn-warning btn-outline' 
    }, 
    { extend: 'colvis', text: 'Show', className: 'btn btn-warning btn-outline'} 
], 

javascript:

function create_workorder_window() { 
    my_window = window.open("createworkorder", "create_workorder", ",toolbar=0,status=0,width=350,height=900"); 

Modal:

<!--Create Workorder Form Modal --> 
<div class="modal fade " id="create_new_workorder" tabindex="-1" role="dialog" 
    aria-labelledby="TitleLabel"> 
    <div class="modal-dialog" role="document"> 
     <div class="modal-content modal-workorder"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
        <span aria-hidden="true">&#xD7;</span></button> 
       <h4 class="modal-title">Create New Workorder</h4> 
      </div> 
      <form id="create_workorder" method="POST" enctype="multipart/form-data">{% csrf_token %} 
       <div class="modal-body"> 
        {{ workorder_form.as_p }} 
       </div> 
       <div class="modal-footer"> 
        <input class="btn btn-primary" type="submit" 
          value="Create Workorder"/> 
        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel 
        </button> 
       </div> 
      </form> 
     </div> 
    </div> 
+0

Ich denke, es keine Option in benutzerdefinierten hinzuzufügen ist attributes.you zu tun zu haben, dass mit jquery afer Datentabelle initialisiert – XYZ

+0

kannst du mir zeigen, wie es geht? –

+0

überprüfen Sie diese https://datatables.net/forums/discussion/36085/how-to-add-data-html-attribute-to-some-dt-button Sie müssen Attribute nach Datentabelle initialisiert – XYZ

Antwort

1

Es gibt keine Möglichkeit Attribute noch name oder id auf eine Schaltfläche nativ über die API hinzuzufügen. Die obigen Kommentare sind richtig, aber die vorgeschlagene Lösung in der Verbindung ist viel zu überkochen. Halten Sie es einfach, Sie müssen nicht die API oder die Buttons Instanz einbeziehen. Fügen Sie eine einzigartige Klasse className und reagiert auf das init.dt Ereignis auf die Schaltfläche mit den gewünschten Eigenschaften zu aktualisieren:

$('#example').on('init.dt', function() { 
    $('.my-text-button') 
    .attr('data-toggle', 'modal') 
    .attr('data-target', '#create_new_workorder'); 
}); 

var table = $('#example').DataTable({ 
    dom: 'Bfrtip', 
    buttons: [{ 
    text: 'New', 
    action: function() { 
     create_workorder_window(); 
    }, 
    className: 'btn btn-warning btn-outline my-text-button' 
    }] 
}) 
+0

Sie könnten mit [Daten] (https://api.jquery.com/data /) statt Attr, um es noch einfacher zu halten. – Shiffty

+0

@Shiffty, Ja, so einfach wird es nicht funktionieren :) Hast du jemals versucht ...? Es ist ein häufiges Missverständnis. Bootstrap verwendet 'data()' intern nicht, so dass 'data()' nicht funktioniert. Es funktioniert nur, um * einen * Daten- * Wert zu erhalten. Probieren Sie es selbst -> ** http: //jsfiddle.net/sLgofw7x/** – davidkonrad

+0

Hoppla, es tut mir leid. – Shiffty

Verwandte Themen