2017-09-10 7 views
0

dataInitでajax呼び出しでデータを読み込み、すべて正常に動作しますが、私の列(ドロップダウン列のみ)ではid値が設定されません。jqGrid onchange(C#MVC)を更新しないでください。

私はitemIdとitemCodeプロパティを持っています。データをロードして正しく表示しますが、ドロップダウンで値を変更すると、itemId値をバインド/更新しません。

本質的に私はIDの列にバインドするためにドロップダウンしたいので、保存するときはIdを保存します。

,{ 
        key: false, 
        hidden: true, 
        name: 'itemId', 
        index: 'itemId', 
        editable: false 
       }, { 
        key: false, 
        name: 'itemCode', 
        index: 'itemId', 
        editable: true, 
        edittype: 'select', 
        editoptions: { 
         dataInit: function(element) { 
          $.ajax({ 
           url: '@Url.Action("GetItems", "Maintenance")', 
           dataType: 'json', 
           type: 'POST', 
           success: function(response) { 
            var array = response; 
            if (array != null) { 
             var i; 
             for (i in array) { 
              if (array.hasOwnProperty(i)) { 
               if (itemId == array[i].id) { 
                $(element).append("<option value=" + 
                 array[i].id + 
                 " selected>" + 
                 array[i].code + 
                 "</option>"); 
               } else { 
                $(element).append("<option value=" + 
                 array[i].id + 
                 ">" + 
                 array[i].code + 
                 "</option>"); 
               } 
              } 
             } 
            } 
           } 
          }); 
         } 
        }, 
        editrules: { required: true} 

答えて

0

ここは私の答えです.....データイベントを見てください。私は選択された行を見つけ、セルを設定します。コンソールログはテストするだけでした。

{ 
        key: false, 
        hidden: true, 
        name: 'userId', 
        index: 'userId', 
        editable: false 
       }, { 
        key: false, 
        name: 'userName', 
        index: 'userName', 
        editable: true, 
        edittype: 'select', 
        editoptions: { 
         dataInit: function(element) { 
          $.ajax({ 
           url: '@Url.Action("GetUsers", "Maintenance")', 
           dataType: 'json', 
           type: 'POST', 
           success: function(response) { 
            var array = response; 
            if (array != null) { 
             var i; 
             for (i in array) { 
              if (array.hasOwnProperty(i)) { 
               if (userId == array[i].id) { 
                $(element).append("<option value=" + 
                 array[i].id + 
                 " selected>" + 
                 array[i].userName + 
                 "</option>"); 
               } else { 
                $(element).append("<option value=" + 
                 array[i].id + 
                 ">" + 
                 array[i].userName + 
                 "</option>"); 
               } 
              } 
             } 
            } 
           } 
          }); 
         }, 
         dataEvents: [ 
          { type: 'change', 
           fn: function (e) { 
            var rowId = $("#jqgrid").jqGrid('getGridParam', 'selrow'); 
            $('#jqgrid').jqGrid('setCell', rowId, 'userId', $(e.target).val()); 
            console.log($("#jqgrid").jqGrid('getCell', rowId, 'userId')); 
           } 
          } 
         ] 
        } 
関連する問題