0

Explainテーブルの質問を議論する前に、jqGridの使用に問題があります。
CostType、CurrencyUnit、Request、RequestCostの4つのテーブルがあります。
CostTypeテーブル構造

CostId       CostName 
-------      ----------
  1           permit
  2           Warehouse receipt
  3           Warehousing

およびリクエスト構造

RequestId         RequestNo     WaybillNo
------------------------------------------
1                    100          120Ac30
2                    101           400CA852

およびCurrencyUnitテーブル構造:

UnitId    UnitName
------------------
1           Dollar
2           Pound
3           Rial

およびCostRequestテーブル構造

requestId   CostId  Amount    CurrencyUnitId     Remark
--------------------------------------------------------
1             2        200      3
1             1        400      1

塗りつぶしページの読み込みグリッドを入力したい次のように:

ここに画像の説明を入力してください その後、ユーザーは上部のテキストボックスにリクエストNoを入力し、ボタン検索をクリックします。次のように: ここに画像の説明を入力してください ユーザーはこのリクエストのコスト額を変更または入力できます。次のように: ここに画像の説明を入力してください 保存ボタンをクリックしてデータベースに保存します。注:私はjqGridの初心者ですが、最初のグリッドを埋めることができます。他の2つのステップは実装できません。私を助けてください 。皆さんありがとう

4

1 に答える 1

1

コードを書かずに質問に答えるのは少し難しいです。

「RequestNo」の入力フィールド(たとえば、id = "requestNo")と[検索]ボタンは<fieldset>、グリッド上の単純なコントロールである可能性があります。click「検索」ボタンのハンドラーは、を呼び出すだけ$("#grid").trigger("reloadGrid", [{page:1}])です。postDataグリッド定義内では、次のように使用できます

var $grid = $("#grid"),
    editingRowId,
    myEditParam = {
        keys: true,
        oneditfunc: function (id) { editingRowId = id; },
        afterrestorefunc: function (id) { editingRowId = undefined; },
        aftersavefunc: function (id) { editingRowId = undefined; }
    }; 

$grid.jqGrid({
    ...
    postData: {
        // add requestNo parameter to the request
        requestNo: function () { return $("#requestNo").val(); }
    },
    beforeRequest: function () {
        // stop request to the server for empty requestNo
        return $("#requestNo").val() !== "" ? true : false;
    },
    onSelectRow: function (id) {
        if (id !== editingRowId) {
            if (typeof editingRowId !== "undefined") {
                // save previously editing row
                $(this).jqGrid("saveRow", editingRowId, myEditParam);
            }
            // start inline editing. The user should save the row by pressing ENTER
            $(this).jqGrid("editRow", id, myEditParam);
        }
    }
    ...
});

がない$("#grid").jqGrid("saveRow", editingRowId);場合は、最後の編集行を保存するために呼び出す「保存」ボタンを追加できます。editingRowIdundefined

editable: true編集モードで表示するすべての列に追加することが重要です。グリッドにすべての編集列を配置する場合は、cmTemplate: {editable: true}jqGridオプションを使用できます。で定義された列定義のデフォルトを変更しますcolModel

「CurrencyUnit」列にドロップダウンを表示するには、列定義に追加のプロパティを含める必要があります。

edittype: "select", editoptions: { value: "Dollar:Dollar; Pound:Pound; Rial:Rial" }
于 2012-05-03T10:37:17.970 に答える