2016-04-20 6 views
0

Ich habe eine gridview, die ich möchte, dass Zeilen zu erweitern und die übergebene BatchID anzeigen. Im Moment verwende ich href="javascript:switchViews('div<%# Eval("BatchID")%>', 'one');", um die Informationen zu übergeben, aber ich kann nicht die BatchID auf dem Javascript-Ende bekommen.

Am Javascript-Ende sollte ich diese Informationen erhalten, um meine neuen Zeilen mit einer ID zuzuweisen, also wenn ich sie umschalte, werden sie nicht alle entfernt, aber nur die entsprechenden. Im Moment werden alle erstellten tr 's aus allen row entfernt, wenn umgeschaltet und auch der Text "Hide Details" bleibt auf anderen Zeilen, die nicht angeklickt werden, aber ihre verschachtelten trs werden entfernt.

Ich habe versucht, die BatchID von den Parametern zu bekommen, aber ich weiß nicht wie. Irgendwelche Ideen für die oben genannten zwei Probleme?

<script type="text/javascript"> 
    $(document).ready(function (params) { 

     $('.showDetails').click(function() { 
      // Show Details DIV 
      $(this).closest('tr').find('.details').toggle('fast'); 
      // Return false to disable default postback on click of a <a> element 
      return false; 
     }).toggle(
      function() { 
       // Trigger text/html to toggle to when hiding. 
       $(this).html('Hide Details').stop(); 
       $(this).closest("tr").after("<tr class='" + event.id + "'><td></td><td colspan = '999'><div>" + '111' + "</div></td></tr>"); 
       // $(this).closest('tr').find('.details').append('<div class=' + 'shit' + '>3399</div>'); 

      }, 
      function() { 
       // Trigger text/html to toggle to when showing. 
       $(this).html('Show Details').stop(); 
       //$(this).find('.zoom').remove(); 
       $('tr.' + event.id).remove(); 
      } 
     ); 
    }); 
</script> 

Gridview:

<asp:TemplateField> 
      <ItemTemplate> 

       <a class="showDetails" href="javascript:switchViews('div<%# Eval("BatchID")%>', 'one');">Show Details</a> 

      </ItemTemplate> 
    </asp:TemplateField> 
+3

empfehle ich Ihnen, jQuery und Inline-Javascript nicht mischen. –

+0

@ErikPhilips Ich bin mir nicht sicher, wie es weitergeht. Ich habe nicht viel Erfahrung auf Kundenseite. – alwaysVBNET

Antwort

1

Ich empfehle Decoupling Your HTML, CSS, and JavaScript lesen.

Ich kann nicht die BatchID auf dem Javascript-Ende erhalten.

Ermöglicht, dass in einem nicht-gekoppelten Weg zum HTML hinzu:

(https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes)

<a class="showDetails" data-batchid="<%# Eval("BatchID")%>" href="javascript:void(0)">Show Details</a> 

Dann wird Ihren Klick aktualisieren Sie den Wert zu erhalten und den Anruf tätigen:

(https://api.jquery.com/jquery.data/)

$('.showDetails').click(function() { 

    // Show Details DIV 
    $(this).closest('tr').find('.details').toggle('fast'); 

    var batchId = $(this).data('batchid'); 
    switchViews(batchId, 'one'); 
}).... 

Ich habe einen gültigen Href und entfernen Sie die return false:

Href attribute for JavaScript links: “#” or “javascript:void(0)”?

+0

Vielen Dank für Ihre Hilfe und die Links. – alwaysVBNET

Verwandte Themen