2016-11-22 3 views
0

Ich habe eine Ajax.ActionLink, die eine Anfrage an den Server sendet und ein Ergebnis vom Server erhält. Also in AjaxOption schreibe ich einfach den Namen der Erfolgsfunktion.Wie lösche ich bestimmte Tabellenzeilen aus Backend und Frontend?

OnSuccess = "SuccessDeleteFunction" 

sondern basiert auf Ergebnis möchte ich DOM element.To passieren aktuellen DOM-Element in Erfolgsfunktion ich diesen Code verwendet ändern:

OnSuccess = "SuccessDeleteFunction(this)" 

Aber Wie kann ich beide zugleich.

function SuccessDeleteFunction(result, tag) { 

    if (result.Success) { 
     // do sth 
    } 
    eval(result.Script); 
} 

Hier ist mein Code:

@foreach (var item in Model) 
{ 
    <tr class="ContentRow"> 
     <td> 
      @Html.DisplayFor(modelItem => item.Name) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Email) 
     </td> 
     <td> 
      @Ajax.ActionLink(" ", "Delete", "Product", new { id = @item.Id }, new AjaxOptions() { Confirm = "Are you sure?", HttpMethod = "get", OnSuccess = "SuccessDeleteFunction" }, new { @class = "btn fa fa-trash text-danger fa-2x " }) 

     </td> 
    </tr> 
} 
+0

Sie können Parameter nicht an Ajax-Erfolgsmethode übergeben. warum brauchst Du es? Es macht keinen Sinn. –

+0

Ich möchte, wenn das Ergebnis Erfolg ist dann entfernt die Eltern tr. Es gibt also keine Notwendigkeit, die Liste vom Server neu zu laden, und auf der Clientseite werde ich damit umgehen. – Afsaneh

+0

teilen Sie auch HTML. –

Antwort

0

Sie müssen Ihre Artikel ID zu TR wie:

@foreach (var item in Model) 
    { 
     <tr class="ContentRow" id="tr_'@item.id'"> 
      <td> 
       @Html.DisplayFor(modelItem => item.Name) 
      </td> 
       <td> 
       @Html.DisplayFor(modelItem => item.Email) 
       </td> 
       <td> 
       @Ajax.ActionLink(" ", "Delete", "Product", new { id = @item.Id }, new AjaxOptions() { Confirm = "Are you sure?", HttpMethod = "get", OnSuccess = "SuccessDeleteFunction" }, new { @class = "btn fa fa-trash text-danger fa-2x " }) 

       </td> 
     </tr> 
    } 

Und in Ihrem JS Code, den Sie dies tun müssen, und eine Sache, Sie brauchen mehr ist Geben Sie Ihren Artikel ID von SERVER RESPONSE

zurück 0
function SuccessDeleteFunction(result) { 

    if (result.Success) { 
     // also return your that id from server in response.... 
     $("tr_" + result.id).remove(); 
    } 
    eval(result.Script); 
} 
Verwandte Themen