2009-09-01 4 views
2

Ich habe eine jqGrid in einer ASP.Net MVC-Ansicht. Ich möchte den Wert eines ausgeblendeten Textsteuerelements auf der Seite als zusätzlichen Parameter für eine jqGrid-Methode verwenden, , wenn ich eine Inline-Bearbeitung in einer Zeile mache.jqGrid: postData wird nicht während der Inline-Bearbeitung zur Controller-Aktion gesendet

ich auf jqGrid das postdata Attribut bin mit diesen 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 geschrieben zu werden das macht jqGrid für den Controller für die editUrl. Meine Zeilenwerte machen es aus, aber der letzte Parameter MyId ist immer Null. Ich habe Firebug überprüft und bestätigt, dass der POST nur die ersten beiden Werte sendet.

Irgendwelche Ideen? Ist es möglich, die PostData-Werte während einer Inline-Bearbeitung auf einem Gitter zu senden?

Antwort

1

Leider gab es keine saubere Möglichkeit, dies mit dem Raster zu tun. Ich speicherte den Wert, der in Session benötigt wurde, und nicht ein verstecktes Feld, so dass ich dann kostenlos auf das Backend zugreifen konnte.

+0

Sie sollten Antwort @Giorgios Sakalis überprüfen. So habe ich es gemacht und es funktioniert perfekt. – AdrianoRR

1

Ich glaube nicht, dass es soll. postData wird gesendet, wenn Datensätze abrufen. Meine wilde Vermutung ist, dass Sie stattdessen beforeSubmitCell behandeln und das Objekt bearbeiten sollten, um dort eingereicht zu werden.

0

Ich hatte einige schlechte Erfahrungen damit, dass dies funktioniert. Meine Problemumgehung (die glücklicherweise als legitimer UI-Ansatz akzeptiert wurde) bestand darin, Schaltflächen für die Zeilenauswahl zu speichern und abzubrechen.

Mit der saveRow-Methode von jqGrid können Sie zeilenspezifische Daten für die Buchung eingeben. Ich würde vorschlagen, das zu untersuchen.

0

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

Ich glaube, ich etwas hier auf Stackoverflow zu sehen, die sollte funktioniert:

jqgrid userData posting null on refresh

Auf einer Seite zur Kenntnis, wir (Trirand, die Jungs hinter jqGrid), arbeiten jetzt auf einem ASP.NET WebForms & MVC-spezifische Site mit Beispielen und sogar eigenständiger serverseitiger ASP.NET-Komponente (ähnlich wie GridView), die mit jqGrid fast ohne Code funktioniert.

Sie können Alpha unserer Arbeit sehen hier: jqgrid userData posting null on refresh

+0

Ausgezeichnet, danke für die Antwort. Ich freue mich darauf. –

3

Verwendung:

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