free-jqgrid редактирование столбца с типом редактирования: "checkbox", editoptions.value: "1: 0" не работает - PullRequest
0 голосов
/ 25 апреля 2018

В free-jqgrid , при редактировании столбца с edittype: "checkbox" и editoptions.value = "1: 0" , это невозможноустановить значение поля в 1, если оно было ранее 0. Когда вы проверяете поле и отправляете форму, столбец остается непроверенным.

Это хорошо работало в jqGrid .

Это странное поведение можно увидеть в следующем примере JSFiddle. (разветвленный из примера OlegK )

В этом примере, если вы редактируетеи отметьте поле inCharge ранее непроверенного поля, после отправки формы оно останется непроверенным.
С другой стороны, если оно было проверено, его можно либо проверить, либо снять, и после отправки, это будет как ожидалось.
Более того, когда вы добавляете запись, если вы проверяете поле inCharge , она остается непроверенной после отправки.

Вот код

$(function() {
  "use strict";
  $("#grid").jqGrid({
      colModel: [{
          name: "id",
          width: 20,
          hidden: true,
          editable: false,
        },
        {
          name: "firstName",
          width: 200,
          editable: true
        },
        {
          name: "lastName",
          width: 200,
          editable: true
        },
        {
          name: "inCharge",
          width: 100,
          editable: true,
          formatter: "checkbox",
          edittype: "checkbox",
          editoptions: {
            value: "1:0"  // doesn't seem to work properly.
          }
        }
      ],
      data: [{
          id: 10,
          firstName: "Angela",
          lastName: "Merkel",
          inCharge: "1"
        },
        {
          id: 20,
          firstName: "Vladimir",
          lastName: "Putin",
          inCharge: "1"

        },
        {
          id: 30,
          firstName: "David",
          lastName: "Cameron",
          inCharge: "1"

        },
        {
          id: 40,
          firstName: "Barack",
          lastName: "Obama",
          inCharge: "0"

        },
        {
          id: 50,
          firstName: "François",
          lastName: "Hollande",
          inCharge: "0"

        }
      ],
      pager: true,
      pgbuttons: false,
      pginput: false,
      viewrecords: true,
      pagerRightWidth: 90
    })
    .jqGrid('navGrid', {
      edittext: 'Edit',
      addtext: 'Add',
      deltext: 'Del',
      search: false,
      view: true,
      viewtext: 'View',
      refresh: true,
      refreshtext: 'Refresh'
    });
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/themes/redmond/jquery-ui.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.15.4/css/ui.jqgrid.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.15.4/jquery.jqgrid.min.js"></script>
<table id="grid"></table>

1 Ответ

0 голосов
/ 25 апреля 2018

Проблема, которую вы описываете - это ошибка при редактировании формы, описанная в выпуске # 432 .Проблема уже исправлена ​​в коде на Git.Демо

https://jsfiddle.net/OlegKi/dvyo36hw/11/

использует ваш оригинальный код, но

https://rawgit.com/free-jqgrid/jqGrid/master/js/jquery.jqgrid.min.js

вместо

https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.15.4/jquery.jqgrid.min.js

Можно убедиться, что проблема исправлена.

...