0

ページにjqgridを配置しました。Jqgrid では、ユーザーが列をクリックしたときに必要な列を配置し、目的の列をクリックすると、他の Jqgrid.Now を入力します。初回のみ 2 回目の JQGrid を埋めますが、次回はサーバー側のコードが実行されません。コードは次のように記述します

var firstButtonColumnIndex = 0;
            grid = $('#list'); buttonNames = {};
            grid.jqGrid({
                url: 'jQGridHandler.ashx?Request=1',
                loadonce: true,
                direction: "rtl",
                pgtext: "صفحه {0} از {1}",
                datatype: 'json',
                height: 250,
                colNames: ['شماره درخواست', 'شماره اموال', 'شرح دستور کار', 'تاریخ دستور کار', 'زمان دستور کار', 'ملاحظات', '', ''],
                colModel: [

                        { name: 'WorkOrderNo', width: 100, sortable: true },
                        { name: 'AssetNo', width: 100, sortable: true },
                        { name: 'WorkDescription', width: 400, sortable: true },
                        { name: 'WorkOrderDate', width: 80, sortable: true },
                        { name: 'WorkOrderTime', width: 80, sortable: true },
                        { name: 'Remark', width: 100, sortable: true },
                        { name: 'del', width: 20, sortable: false, search: false,
                            formatter: function () {
                                return "<span class='ui-icon ui-icon-trash'></span>";
                            }
                        },
                        { name: 'details', width: 20, sortable: false, search: false,
                            formatter: function () {
                                return "<span class='ui-icon ui-icon-document'></span>";
                            }
                        }

                    ],
                gridview: true,
                rowNum: 10,
                rowList: [10, 20, 30],
                pager: '#pager',
                //  sortname: 'WorkOrderNo',
                viewrecords: true,
                sortorder: 'asc',
                caption: 'درخواست ها...........',
                rownumbers: true,
                beforeSelectRow: function (rowid, e) {
                    var iCol = $.jgrid.getCellIndex(e.target);
                    if (iCol == 7) {
                        //alert("rowid=" + rowid + "\nButton name: " + buttonNames[iCol]);
                        // $('img').each(function () {
                        $("#workRequestPopUp").draggable();
                        //  });

                    } else if (iCol == 8) {
                        workOrderId = rowid;

                        $("#tblRequestWorks tr").remove();
                        $("#tblRequestWorks").jqGrid({
                           // url: 'jQGridHandler.ashx?RequestWorksFill=1&workOrderId=' + workOrderId,
                            url: "PublicHandler.ashx?Request=1&workOrderId: rowid",
                            direction: "rtl",
                            pgtext: "",
                            datatype: 'json',
                            height: 250,
                            colNames: ['نام کار', 'نام واحد', 'سرپرست واحد', 'تعداد', 'پایان کار', ''],
                            colModel: [

                        { name: 'WorkName', width: 300, sortable: true },
                        { name: 'SectionName', width: 100, sortable: true },
                        { name: 'SectionSupervisor', width: 100, sortable: true },
                        { name: 'RequestCount', width: 80, sortable: true },
                        { name: 'FinishWork', width: 100, sortable: true },
                        { name: 'details', width: 20, sortable: false, search: false,
                            formatter: function () {
                                return "<span class='ui-icon ui-icon-document'></span>";
                            }
                        }

                    ],

                            rowNum: 10,
                            rowList: [10, 20, 30],

                            sortorder: 'asc',
                            caption: 'Test',
                            rownumbers: true,
                            beforeSelectRow: function (rowid, e) {
                                var iCol = $.jgrid.getCellIndex(e.target);
                                if (iCol == 6) {
                                    alert(rowid);
                                    Fill12(rowid);
                                } else if (iCol == 8) {
                                    alert(rowid);
                                    Fill12(rowid);

                                    return true;

                                    // return (iCol >= firstButtonColumnIndex) ? false : true;

                                }
                            },
                            dataType: "json"

                        });
                        //  fillRequestWorkPopup(workOrderId);

                        popup(e);
                    }
                    // prevent row selection if one click on the button
                    // return (iCol >= firstButtonColumnIndex) ? false : true;
                    return true;
                }


            });

JQGridのtrでデリゲート機能ですか?私は教授が助けてくれることを尊敬しています。皆さんありがとう

4

1 に答える 1

1

URL"PublicHandler.ashx?Request=1&workOrderId: rowid"が間違っているようです。おそらくということ"PublicHandler.ashx?Request=1&workOrderId=" + rowidですか?url: "PublicHandler.ashx"と併用した方が良いでしょうpostData: {Request: 1, workOrderId: rowid}

次の問題は の使い方です$("#tblRequestWorks tr").remove();。ページで使用する HTML コードが含まれていません。古いグリッドを破棄して同じ場所に新しいグリッドを作成する場合は、: の代わりに GridUnload を使用する必要があります(こちらを参照)。$("#tblRequestWorks tr").remove();$("#tblRequestWorks").jqGrid('GridUnload');

コードから削除することもできdataType: "json"ます。jqGrid はオプションを認識せず、すでに正しいdatatype: "json"オプションを使用しています。

GridUnloadの使用が不要になるようにコードを変更できると思います。2 番目のグリッド ( $("#tblRequestWorks")) のいくつかのパラメーターを変更し、それをリロードする$("#tblRequestWorks").trigger('reloadGrid', [{page: 1}]);だけで十分に思えます。

idもう 1 つ注意: 2 番目のグリッドの値には十分注意する必要があります。ページ上で ID を重複させることは許可されていません。サーバーで一意の ID を生成できない場合idPrefixは、グリッドのオプションを使用することを検討できます。

于 2012-02-19T14:03:09.887 に答える