0

jqgrid を含む asp.net フォームがあります。ユーザーは、メイン フォームに口座番号を入力してから、jqgrid にデータを入力できます。

ユーザーが行をグリッドに保存する時点で、フォームから保存プロシージャに口座番号を渡したいと思います。これを使用して、グリッド内の行の割引情報を計算します。

保存の時点でこの情報を渡す方法がわかりませんか?

アップデート

データ型として json を使用し、インライン編集を使用し、editurl を使用して、バックエンド データベースへの保存を処理する Web サービスにグリッドをポストします。

更新 2 - 解決策

これは、テキスト ボックスの値を通常の投稿データと一緒に渡すために使用したコードです。

jQuery(grid).jqGrid('inlineNav', "#pager", { edit: false, add: true, del: false, search: false,

                //add the extra params to the post call
                addParams: {
                    useDefValues: true,
                    addRowParams: {
                        keys: true,
                        aftersavefunc: reloadGrid,
                        extraparam: { accNo: getAccNumber, colourName: getColName }
                    }
                },
                editParams: {
                    keys: true,
                    aftersavefunc: reloadGrid,
                    extraparam: { accNo: getAccNumber, colourName: getColName }
                }
            });

この関数は、asp.net テキスト ボックスの値を取得します。

//get the value of the account number field
            getAccNumber = function () {
                return $("#<%= txtAccNo.ClientID %>").val();
            };
4

1 に答える 1

0

extraparam次のオプションを使用できますeditRow

onSelectRow: function (id) {
    ...
    $(this).jqGrid('editRow', id, {
        keys: true,
        url: "yourServerUrl",
        extraparam: {
            accountNumber: function () {
                return $("#accountNr").val();
            }
        }
    });
    ....
}

accountNumberid="accountNr" の入力フィールドからの現在の値を持つ追加パラメーターは、標準データに追加で送信されます。

対応するデモをここで見ることができます。その下に URL が存在しないためhttp://www.ok-soft-gmbh.com/jqGrid/myServerUrl、エラーが発生しますが、Fiddler、Firebug、または IE または Chrome の開発者ツールで、追加のパラメーターaccountNumberが実際にサーバーに送信されることを簡単に確認できます。

ASP.NET コードの場合、次のような構文を使用して"<%=accountNumber.ClientID%>"、フォームの対応する入力フィールドの ID を取得する必要がある場合があります。

メソッドとして定義されたプロパティで jqGrid のinlineDataオプションを代わりに使用できます。ここでの考え方は、ここで説明した と同じですpostData答えには、使用されている例がありinlineDataます。

于 2012-10-23T16:52:16.507 に答える