4 Stimmen

Übergabe zusätzlicher Postdata in eine Add Record Funktion - JQGrid - MVC . NET

Ich verwende das JQGrid-Plugin in einem MVC-Projekt. Ich versuche, die Verwendung von "Session" zu vermeiden. Ich konnte zusätzliche Postdata in meine Edit- und Delete-Funktionen übergeben, indem ich die Serializedata-Methoden von JQGrid verwendet habe.

Z.B.

serializeEditData: function (postdata) 
{
    var rowdata = jQuery('#gridId').getRowData(postdata.id);
    return {id: postdata.id, oper: postdata.oper, SomeExtraData: $('#extradata').val()};
}

Es scheint jedoch keine serializeAddData-Funktion zu geben. Gibt es eine andere Möglichkeit, die Postdaten für die Add-Methode zu ändern, bevor sie gesendet werden?

9voto

Oleg Punkte 219333

Es gibt eine Methode editGridRow die die Formularbearbeitung für ambos Dialoge "Bearbeiten" und "Hinzufügen". Also das gleiche Ereignis han`ler serializeEditData kann in beiden Fällen verwendet werden. Zum Beispiel,

$("#list").jqGrid('navGrid','#pager',
    {/*navGrid options*/},
    {/*edit options*/
        serializeEditData: function (postdata) {
            // your implementation of serializeEditData for edit
        }
    },
    {/*add options*/
        serializeEditData: function (postdata) {
            // your implementation of serializeEditData for add
        }
    },
    {/*del options*/},
    {/*search options*/}

/ );

Typischerweise serializeEditData Ereignis ist sehr praktisch, wenn Sie konvertieren müssen todo die geposteten Daten in ein anderes Format umzuwandeln, z.B. um eine JSON-Serialisierung durchzuführen. Um zusätzliche Postdata-Parameter übergeben zu können, können Sie verwenden editData der dieselbe Bedeutung hat wie der Parameter postData Parameter von jqGrid:

$("#list").jqGrid('navGrid','#pager',
    {/*navGrid options*/},
    {/*edit options*/
     editData: {SomeExtraData: $('#extradata').val()}
    },
    {/*add options*/
     editData: {SomeExtraData: $('#extradata').val()}
    },
    {/*del options*/},
    {/*search options*/}
);

oder besser auf diese Weise (siehe diese Antwort über die Verwendung von Funktionen als Eigenschaft von postData ):

$("#list").jqGrid('navGrid','#pager',
    {/*navGrid options*/},
    {/*edit options*/
     editData: {SomeExtraData: function() {return $('#extradata').val();}}
    },
    {/*add options*/
     editData: {SomeExtraData: function() {return $('#extradata').val();}}
    },
    {/*del options*/},
    {/*search options*/}
);

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