0

ユーザーが「翌月」ボタンまたは「前月」ボタンをクリックした後、colModel、colNames、および ColData を変更しようとしました。しかし、うまくいきません。

ここでは、ユーザーが「前の月」ボタンをクリックした後の変化を確認できます。先頭の colNames は次のように表示されます 例:
'ID', 'Name', 01.07, 02.07, 03.07 ... 31.07そして colModel は33 列 に対して作成され、以下のデータ構造を示します。

ユーザーが「前の月」ボタンを押している場合、新しい colNames は 「ID」、「名前」、01.06、02.06、03.06、.... 30.06 のように表示 される必要があり、今は colModel を32 列だけ作成する必要があります。

最初に PHP で colNames と colModel のダイナミックを作成すると、実際の月が表示されます。

ここでhtml部分を見ることができます

<div id="jqgrid">
    <div id="navigation-top">
        <input class="button-pos ui-corner-all ui-state-loading ui-state-default" type="submit" name="prevMonth" id="prevMonth" value="<< vorheriger Monat" onClick="showMonth('prevmonth', <?php echo $this->month; ?>, <?php echo $this->year; ?>);" />
        <input class="button-pos ui-corner-all ui-state-loading ui-state-default" type="submit" name="nextMonth" id="nextMonth" value="nächster Monat >>" onClick="showMonth('nextmonth', <?php echo $this->month; ?>, <?php echo $this->year; ?>);" />
    </div>

    <table id="grid"><tr><td></td></tr></table>
</div>

これは私が使用しているサンプルコードです。

var lastsel;

$(document).ready($(function(){ 
    $.ajax({
        url:'/get-jq-grid-json/',
        datatype: 'json',
        type: 'POST',
        success: function(result){
            var obj = $.parseJSON(result);
            var colD = obj.couponStripList;
            var colM = obj.colModelList;
            var colN = obj.columnNames;

            var lastSel;

            $("#grid").jqGrid({
                url:'/get-jq-grid-json/',
                jsonReader : {
                    root: "rows",
                    cell: "",
                    repeatitems: true,
                    id: "invid"
                }, 
                mytype: 'POST',
                datatype: 'local',
                data: colD.rows,
                colNames: colN,
                colModel: colM,
                height: 'auto',
                width: 'auto',
                onSelectRow: function(id) {
                    if(id && id!==lastSel){ 
                        $("#grid").restoreRow(lastSel); 
                        lastSel=id; 
                    } 
                    $("#grid").editRow(id, true); 
                },
                editurl:'/price-calendar/save-jq-grid/locationId/',
                loadComplete: function(data){
                    alert('loaded');
                },
                loadError: function(xhr,status,error){
                    alert('error ' + error );
                }
            });
        },
        error: function(x, e){
            alert(x.readyState + " "+ x.status +" "+ e.msg);
        }


    });
    setTimeout(function() {$("#grid").jqGrid('setGridParam',{datatype:'json'}); },500);

今、colNames などを変更しようとしていますが、ist が機能しません。Date は $("#grid").jqGrid('setGridParam', { data: obj.couponStripList.rows }); で正しく変更されます。しかし、coNames は setLabel によって変更されず、どうすれば colModel を変更できますか?

 function showMonth(param, month, year){
        if(param == 'prevmonth'){
            if(month > 1){
                month -= 1;
            }
        }

        if(param == 'nextmonth'){
            if(month < 12){
                month += 1;
            }
        }

        $.post('/price-calendar/get-jq-grid-json/locationId/<?php echo $this->locationId; ?>/serviceId/<?php echo $this->serviceId; ?>/' + param + '/' + month + '/year/' + year, 
        function(data){ 


            $("#grid").jqGrid('clearGridData');
             var obj = $.parseJSON(data);

             for($i = 0; $i <= obj.columnNames.length; $i++)
             {

                 var colNames = $("#grid").jqGrid('getGridParam', 'colNames');
                  $("#grid").jqGrid('setLabel', colNames[$i], obj.columnNames);
             }

            $("#grid").jqGrid('setGridParam', { data: obj.couponStripList.rows });
            $("#grid").trigger("reloadGrid");

        });

ここに 2 つの json-data 構造があります。1 つ目は開始 json-data で、2 つ目はユーザーが「前の月」ボタンをクリックしたときの新しい json-data です。

{
   "colModelList":[
      {
         "name":"id",
         "index":"id",
         "width":100,
         "hidden":true,
         "key":true
      },
      {
         "name":"name",
         "index":"name",
         "width":200
      },
      {
         "name":"date01",
         "index":"date01",
         "width":45,
         "editable":true
      },
      {
         "name":"date02",
         "index":"date02",
         "width":45,
         "editable":true
      },
      {
         "name":"date03",
         "index":"date03",
         "width":45,
         "editable":true
      },
      {
         "name":"date04",
         "index":"date04",
         "width":45,
         "editable":true
      },
      {
         "name":"date05",
         "index":"date05",
         "width":45,
         "editable":true
      },
      {
         "name":"date06",
         "index":"date06",
         "width":45,
         "editable":true
      },
      {
         "name":"date07",
         "index":"date07",
         "width":45,
         "editable":true
      },
      {
         "name":"date08",
         "index":"date08",
         "width":45,
         "editable":true
      },
      {
         "name":"date09",
         "index":"date09",
         "width":45,
         "editable":true
      },
      {
         "name":"date10",
         "index":"date10",
         "width":45,
         "editable":true
      },
      {
         "name":"date11",
         "index":"date11",
         "width":45,
         "editable":true
      },
      {
         "name":"date12",
         "index":"date12",
         "width":45,
         "editable":true
      },
      {
         "name":"date13",
         "index":"date13",
         "width":45,
         "editable":true
      },
      {
         "name":"date14",
         "index":"date14",
         "width":45,
         "editable":true
      },
      {
         "name":"date15",
         "index":"date15",
         "width":45,
         "editable":true
      },
      {
         "name":"date16",
         "index":"date16",
         "width":45,
         "editable":true
      },
      {
         "name":"date17",
         "index":"date17",
         "width":45,
         "editable":true
      },
      {
         "name":"date18",
         "index":"date18",
         "width":45,
         "editable":true
      },
      {
         "name":"date19",
         "index":"date19",
         "width":45,
         "editable":true
      },
      {
         "name":"date20",
         "index":"date20",
         "width":45,
         "editable":true
      },
      {
         "name":"date21",
         "index":"date21",
         "width":45,
         "editable":true
      },
      {
         "name":"date22",
         "index":"date22",
         "width":45,
         "editable":true
      },
      {
         "name":"date23",
         "index":"date23",
         "width":45,
         "editable":true
      },
      {
         "name":"date24",
         "index":"date24",
         "width":45,
         "editable":true
      },
      {
         "name":"date25",
         "index":"date25",
         "width":45,
         "editable":true
      },
      {
         "name":"date26",
         "index":"date26",
         "width":45,
         "editable":true
      },
      {
         "name":"date27",
         "index":"date27",
         "width":45,
         "editable":true
      },
      {
         "name":"date28",
         "index":"date28",
         "width":45,
         "editable":true
      },
      {
         "name":"date29",
         "index":"date29",
         "width":45,
         "editable":true
      },
      {
         "name":"date30",
         "index":"date30",
         "width":45,
         "editable":true
      },
      {
         "name":"date31",
         "index":"date31",
         "width":45,
         "editable":true
      }
   ],
   "columnNames":[
      "Id",
      "Preis",
      "01.07",
      "02.07",
      "03.07",
      "04.07",
      "05.07",
      "06.07",
      "07.07",
      "08.07",
      "09.07",
      "10.07",
      "11.07",
      "12.07",
      "13.07",
      "14.07",
      "15.07",
      "16.07",
      "17.07",
      "18.07",
      "19.07",
      "20.07",
      "21.07",
      "22.07",
      "23.07",
      "24.07",
      "25.07",
      "26.07",
      "27.07",
      "28.07",
      "29.07",
      "30.07",
      "31.07"
   ],
   "couponStripList":{
      "rows":[
         {
            "invid":"1",
            "id":"1",
            "name":"Bild",
            "date01":"28.50",
            "date02":"28.50",
            "date03":"28.50",
            "date04":"28.50",
            "date05":"28.50",
            "date06":"28.50",
            "date07":"28.50",
            "date08":"28.50",
            "date09":"28.50",
            "date10":"28.50",
            "date11":"28.50",
            "date12":"30.95",
            "date13":"30.95",
            "date14":"30.95",
            "date15":"30.95",
            "date16":"30.95",
            "date17":"30.95",
            "date18":"30.95",
            "date19":"30.95",
            "date20":"30.95",
            "date21":"35.50",
            "date22":"35.50",
            "date23":"35.50",
            "date24":"35.50",
            "date25":"35.50",
            "date26":"35.50",
            "date27":"35.50",
            "date28":"35.50",
            "date29":"35.50",
            "date30":"35.50",
            "date31":"35.50",
            "0":0,
            "1":null,
            "2":false,
            "3":false
         }
      ]
   }
}

2 番目の json データ

{
   "colModelList":[
      {
         "name":"id",
         "index":"id",
         "width":100,
         "hidden":true,
         "key":true
      },
      {
         "name":"name",
         "index":"name",
         "width":200
      },
      {
         "name":"date01",
         "index":"date01",
         "width":45,
         "editable":true
      },
      {
         "name":"date02",
         "index":"date02",
         "width":45,
         "editable":true
      },
      {
         "name":"date03",
         "index":"date03",
         "width":45,
         "editable":true
      },
      {
         "name":"date04",
         "index":"date04",
         "width":45,
         "editable":true
      },
      {
         "name":"date05",
         "index":"date05",
         "width":45,
         "editable":true
      },
      {
         "name":"date06",
         "index":"date06",
         "width":45,
         "editable":true
      },
      {
         "name":"date07",
         "index":"date07",
         "width":45,
         "editable":true
      },
      {
         "name":"date08",
         "index":"date08",
         "width":45,
         "editable":true
      },
      {
         "name":"date09",
         "index":"date09",
         "width":45,
         "editable":true
      },
      {
         "name":"date10",
         "index":"date10",
         "width":45,
         "editable":true
      },
      {
         "name":"date11",
         "index":"date11",
         "width":45,
         "editable":true
      },
      {
         "name":"date12",
         "index":"date12",
         "width":45,
         "editable":true
      },
      {
         "name":"date13",
         "index":"date13",
         "width":45,
         "editable":true
      },
      {
         "name":"date14",
         "index":"date14",
         "width":45,
         "editable":true
      },
      {
         "name":"date15",
         "index":"date15",
         "width":45,
         "editable":true
      },
      {
         "name":"date16",
         "index":"date16",
         "width":45,
         "editable":true
      },
      {
         "name":"date17",
         "index":"date17",
         "width":45,
         "editable":true
      },
      {
         "name":"date18",
         "index":"date18",
         "width":45,
         "editable":true
      },
      {
         "name":"date19",
         "index":"date19",
         "width":45,
         "editable":true
      },
      {
         "name":"date20",
         "index":"date20",
         "width":45,
         "editable":true
      },
      {
         "name":"date21",
         "index":"date21",
         "width":45,
         "editable":true
      },
      {
         "name":"date22",
         "index":"date22",
         "width":45,
         "editable":true
      },
      {
         "name":"date23",
         "index":"date23",
         "width":45,
         "editable":true
      },
      {
         "name":"date24",
         "index":"date24",
         "width":45,
         "editable":true
      },
      {
         "name":"date25",
         "index":"date25",
         "width":45,
         "editable":true
      },
      {
         "name":"date26",
         "index":"date26",
         "width":45,
         "editable":true
      },
      {
         "name":"date27",
         "index":"date27",
         "width":45,
         "editable":true
      },
      {
         "name":"date28",
         "index":"date28",
         "width":45,
         "editable":true
      },
      {
         "name":"date29",
         "index":"date29",
         "width":45,
         "editable":true
      },
      {
         "name":"date30",
         "index":"date30",
         "width":45,
         "editable":true
      }
   ],
   "columnNames":[
      "Id",
      "Preis",
      "01.06",
      "02.06",
      "03.06",
      "04.06",
      "05.06",
      "06.06",
      "07.06",
      "08.06",
      "09.06",
      "10.06",
      "11.06",
      "12.06",
      "13.06",
      "14.06",
      "15.06",
      "16.06",
      "17.06",
      "18.06",
      "19.06",
      "20.06",
      "21.06",
      "22.06",
      "23.06",
      "24.06",
      "25.06",
      "26.06",
      "27.06",
      "28.06",
      "29.06",
      "30.06"
   ],
   "couponStripList":{
      "rows":[
         {
            "invid":"1",
            "id":"1",
            "name":"Bild",
            "date01":"28.50",
            "date02":"28.50",
            "date03":"28.50",
            "date04":"28.50",
            "date05":"28.50",
            "date06":"28.50",
            "date07":"28.50",
            "date08":"28.50",
            "date09":"28.50",
            "date10":"28.50",
            "date11":"28.50",
            "date12":"30.95",
            "date13":"30.95",
            "date14":"30.95",
            "date15":"30.95",
            "date16":"30.95",
            "date17":"30.95",
            "date18":"30.95",
            "date19":"30.95",
            "date20":"30.95",
            "date21":"35.50",
            "date22":"35.50",
            "date23":"35.50",
            "date24":"35.50",
            "date25":"35.50",
            "date26":"35.50",
            "date27":"35.50",
            "date28":"35.50",
            "date29":"35.50",
            "date30":"35.50"
            "0":0,
            "1":null,
            "2":false,
            "3":false
         }
      ]
   }
}
4

1 に答える 1