2009-03-20 7 views
1

Ich habe folgende ajax Form tag:Ersetzen eines <tr> Verwendung ASP.MVC Ajax

Wenn das Formular übermittelt wird, kehrt die Steuerung eine teilweise mit einer vollen Zeile in die Tabelle eingefügt werden (die gleiche Teil wird auch verwendet, um die Tabelle an erster Stelle zu rendern).

Die Idee ist, dass, nachdem der Benutzer ein Element bearbeitet, die Zeile des Elements in der Tabelle durch die aktualisierte Version aus dem Teil ersetzt wird. Wenn ich UpdateTargetId auf ein <div> Element zeige, scheint es gut zu funktionieren, aber wenn ich es auf ein <tr> Element zeige, tut es das nicht.

Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Ich änderte schließlich meinen Ansatz. Ich änderte den Controller, um die Werte des Objekts in jason zurückzugeben, und ließ die js-Funktion der Ansicht einfach den Inhalt der Tabellenzeile mit den neuen Werten aktualisieren. Scheint jetzt gut zu funktionieren.

+0

so markieren Sie es als die angenommene Antwort! – darasd

0

Ich gehe davon aus, dass Ihr Teil tatsächlich die gesamte Zeile rendert. In diesem Fall arbeitet die Standard-Ersatz Semantik nicht für das <tr> Element, da Sie eine neue Zeile in die bestehenden Reihe und bekommt so etwas wie das Einfügen würden:

<tr><tr>...new contents</tr></tr> 

Sie bei Änderung der InsertionMode aussehen könnte wollen (Ich vergesse die anderen möglichen Optionen) oder Ihre partiellen erzeugen nur die Zeileninhalte, dh die <td> Elemente anstelle der Zeile selbst.

+0

Das Teil nur gibt den inneren Teil der Zeile zurück, es enthält nicht die Tags. – Gil

+0

Können Sie das Markup anzeigen, in dem die Zeile erstellt wird? – tvanfosson