2 Stimmen

jqGrid: postData wird während der Inline-Bearbeitung nicht an die Controller-Aktion gesendet

Ich habe ein jqGrid auf eine ASP.Net MVC-Ansicht. Ich möchte verwenden, um den Wert eines ausgeblendeten Text-Steuerelement auf der Seite als zusätzlicher Parameter an eine jqGrid-Methode übergeben, wenn ich eine Zeile inline bearbeite .

Ich verwende das postData-Attribut von jqGrid, um dies zu tun:

Javascript:

$('#tblLines').jqGrid({

    ...

    postData: {MyId : $('#MyId').val()}

    ...

    }

MVC:

public ViewResult EditModifyLine(string id, string quantity, string MyId)

Das Problem ist, dass es nicht während der POST gebucht wird, die jqGrid an den Controller für die editUrl macht. Meine Zeilenwerte machen es aus, aber der letzte Parameter MyId ist immer null. Ich habe Firebug überprüft und bestätigt, dass die POST nur die ersten beiden Werte sendet.

Irgendwelche Ideen? Ist es möglich, die postData-Werte während einer Inline-Bearbeitung in einem Raster zu senden?

3voto

Giorgos Sakalis Punkte 66

Verwendung:

postData: {MyId :function() { return $('#MyId').val();}

1voto

Craig Stuntz Punkte 124703

Ich glaube nicht, dass es so sein sollte. postData wird gesendet, wenn Abrufen von Aufzeichnungen. Meine wilde Vermutung ist, dass Sie Folgendes behandeln sollten beforeSubmitCell und manipulieren Sie dort das zu übermittelnde Objekt.

1voto

The Matt Punkte 6598

Leider gab es keine saubere Möglichkeit, dies mit dem Netz zu tun. Am Ende speicherte ich den benötigten Wert in der Session und nicht in einem versteckten Feld, so dass ich dann im Backend kostenlos darauf zugreifen konnte.

0voto

jmarnold Punkte 11

Ich habe schlechte Erfahrungen damit gemacht, dass dies tatsächlich funktioniert. Mein Workaround (der glücklicherweise als legitimer UI-Ansatz akzeptiert wurde) war die Bereitstellung von Schaltflächen zum Speichern und Abbrechen bei der Zeilenauswahl.

Mit der saveRow-Methode von jqGrid können Sie zeilenspezifische Daten für die Buchung einfügen. Ich würde vorschlagen, diese Methode zu prüfen.

0voto

user125775 Punkte 141

Es gibt etwas, das wir postData nennen. Sie können es auf dem Client manipulieren und benutzerdefinierte Daten an den Server senden, z. B. in Form von URL-Get-Parametern.

Ich glaube, ich habe hier auf Stackoverflow etwas gesehen, das funktionieren sollte:

jqgrid userData bucht null bei Aktualisierung

Nebenbei bemerkt, arbeiten wir (Trirand, die Jungs hinter jqGrid) gerade an einer ASP.NET WebForms & MVC spezifischen Seite mit Beispielen und sogar einer eigenständigen ASP.NET Server-seitigen Komponente (ähnlich wie GridView), die fast ohne Code mit jqGrid funktioniert.

Hier können Sie sich Alpha unserer Arbeit ansehen: jqgrid userData bucht null bei Aktualisierung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X