2017-03-08 6 views
0

Ich habe ein Upload-Steuerelement, das jedes Mal getroffen wird, wenn eine Datei erfolgreich hochgeladen wurde. Benutzer können zu jeder Zeit 1 oder mehr Dateien hochladen. Und die folgende js Funktion heißt function OnFileUploadComplete(s, e){}. In dieser Funktion a machen Sie einen Ajax-Aufruf und erhalten Sie List<T> von Werten. Ich möchte über das Ergebnis in einer Schleife von meiner Ajax reponse setzen und sie in eine Tabelle anzuzeigen, die ich wie folgt anArtikel zur Tabelle hinzufügen

function successCallBack(result) { 
    var table = $("#attachments-table"); 

    $.each(result.Attachment, function (index) { 
     var base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(result.Attachment[index].Thumbnail))); 
     var rows = $('<tr></tr>'), 
      button = $('<input class="btn btn-danger delete-attachment">').attr({ 
        type: 'button', 
        id: result.Attachment[index].Id, 
        name: result.Attachment[index].Id, 
        value: result.Attachment[index].Id }); 

      rows.append('<td>' + result.Attachment[index].AttachmentName + '</td>'); 
      rows.append('<td><img class="img-responsive" src="data:image/png;base64,' + base64String + '"></td>'); 
      $('<td></td>').html(button).appendTo(rows); 
      table.append(rows); 
    }); 
} 

erreicht haben bis zu einem Punkt Das funktioniert gut. Wenn ich jedoch mehrere Elemente habe, fügt es sie immer wieder hinzu. Meine Frage ist also, wie man nur Artikel hinzufügen kann, die nicht schon in der Tabelle sind.

Hinweis: Die Tabelle ist leer, wenn die Seite geladen wird und durch die Ajax-Antwort-Daten gefüllt ist

+0

sind diese Elemente, einzigartig oder sich wiederholend, wenn sich wiederholende Wille? sie haben die gleiche ID oder anders? –

+0

@subrahmanyabhat die Elemente sind einzigartig, und wird nie die gleiche ID haben auch die Anlage Name ist einzigartig – Code

+0

dann jedes Mal, wenn Sie neue Elemente zu Tabelle rechts hinzufügen. –

Antwort

1

versuchen so etwas wie dieses

function successCallBack(result) { 
    var table = $("#attachments-table"); 

    $.each(result.Attachment, function (index) { 
     var base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(result.Attachment[index].Thumbnail))); 
     var rows = $('<tr></tr>'), 
      button = $('<input class="btn btn-danger delete-attachment">').attr({ 
        type: 'button', 
        id: result.Attachment[index].Id, 
        name: result.Attachment[index].Id, 
        value: result.Attachment[index].Id }); 

      rows.append('<td>' + result.Attachment[index].AttachmentName + '</td>'); 
      rows.append('<td><img class="img-responsive" src="data:image/png;base64,' + base64String + '"></td>'); 
      $('<td></td>').html(button).appendTo(rows); 
if($("#"+id).length==0){ 
      table.append(rows);} 
    }); 
} 
+0

Das ist, was ich gesucht habe, Vielen Dank! – Code

Verwandte Themen