0

こんにちは、私は jqgrid を持っていて、 update inline を設定しています。私はこのコードを書きました

 $(function () {

         var  localstr="2:Dolar;3:Pond;4:Rial";

 var rows;
            var lastSel;
            var grid = $('#list');



            grid.jqGrid({
                url: 'jQGridHandler.ashx',

                postData: { ActionPage: 'ClearanceCost', Action: 'Fill' },
                ajaxGridOptions: { cache: false },
                loadonce: true,
                direction: "rtl",

                datatype: 'json',
                height: 490,
                colNames: ['RequestId', 'WaybillNo', 'CostId', 'NameCost', 'Amount', 'CurrencyTypeId ', 'Remark'],
                colModel: [
                        { name: 'REQUEST_ID', width: 100, sortable: true, hidden: true },
                        { name: 'WAYBILL_NO', width: 100, sortable: true, hidden: true },
                        { name: 'COST_ID', width: 200, sortable: true, hidden: true },
                        { name: 'COST_NAME', width: 200, sortable: true },
                        { name: 'COST_AMOUNT', width: 100, sortable: true, editable: true },
                        { name: 'CURRENCY_ID', width: 100, sortable: true, editable: true, edittype: 'select', formatter: 'select', editoptions: {
                            value: localstr
                            //,



                        },
                        { name: 'REMARK', width: 200, sortable: true, editable: true }
                       ],

                gridview: true,
                rowNum: 30,
                rowList: [30, 60, 90],
                pager: '#pager',
                sortname: 'REQUEST_ID',
                viewrecords: true,
                sortorder: 'ASC',

                rownumbers: true,
                loadComplete: function () {

                    var $this = $(this);
                    rows = this.rows;
                    var l = rows.length, i, row;

                    for (i = 0; i < l; i++) {
                        row = rows[i];



                        var selRowId = grid.jqGrid('getGridParam', row.id);
                        console.log(selRowId);
                        console.log(grid.jqGrid('getCell', row.id, 'CURRENCY_ID'));

                        if ($.inArray('jqgrow', row.className.split(' ')) >= 0) {
                            $this.jqGrid('editRow', row.id, true);
                        }

                    }
                },
                editurl: "jQGridHandler.ashx"

            });
            grid.jqGrid('navGrid', '#pager', { add: true, edit: true, del: true }, {}, {}, {}, { multipleSearch: true, overlay: false, width: 460 });


            $("#btnsave").click(function () {
                var l = rows.length, i, row;

                for (i = 1; i < l; i++) {
                    row = rows[i];

//                    var $this = grid.jqGrid('getCell', row.id, 'COST_AMOUNT');
//                    var $id = $($this).attr("id");
//                    var COST_AMOUNT = $("#" + $id).val();


//                    console.log(grid.jqGrid('getCell', row.id, 'COST_ID'));
//                    $this = grid.jqGrid('getCell', row.id, 'COST_ID');
//                    $id = $($this).attr("id");
//                    var COST_ID = $("#" + $id).val();

                   alert(grid.jqGrid('getCell', row.id, 'CURRENCY_ID'));
//                    $this = grid.jqGrid('getCell', row.id, 'CURRENCY_ID');
//                    $id = $($this).attr("id");
//                    var CURRENCY_ID = $("#" + $id).val();

//                    $this = grid.jqGrid('getCell', row.id, 'REMARK');
//                    $id = $($this).attr("id");
//                    var REMARK = $("#" + $id).val();

//                    console.log(COST_ID + ",  " + COST_AMOUNT + ",  " + CURRENCY_ID + ",  " + REMARK);



                }

            });

        });

ユーザーが btn をクリックしたときに CURRENCY_ID ドロップダウン リストの値を取得したいのですが、助けてください。皆さんありがとう

EDIT01:

ここに画像の説明を入力

Mr Oleg i want design like this 掲載

助けてくれてありがとう

4

1 に答える 1

1

JSON データの列の順序が間違っていることがわかります。「EURO」のようなテキストは3列目にありますが、グリッドの 6 番目に列があります。非表示の列もすべてカウントする必要があります。おそらく、列の順序を変更し、「WAYBILL_NO」と「COST_ID」を の別の場所に移動するだけで済みcolModelます。

おそらくそれはあなたが持っているエラーでしたか?

さらに、使用するすべての変数を定義することを忘れないでください。たとえば、行

var $this = $(this);
rows = this.rows;

に固定する必要があります

var $this = $(this),
    rows = this.rows;

これはと同じです

var $this = $(this), rows = this.rows;

現在のコードは

var $this = $(this);
window.rows = this.rows;

または、JavaScript の厳密モードでエラーを生成します。

于 2012-06-27T11:10:22.683 に答える