jqgrid редактировать, сохранять и сохранять - PullRequest
1 голос
/ 02 февраля 2011

После того, как я отредактирую ячейки внутри выбранной строки, когда я нажимаю Esc или вводу, моя строка сохраняется, а затем строка все еще отображается как «выделенная», а когда я выбираю ее снова, она меняется в обычный ряд.

Моя проблема в том, что если я снова выберу эту строку, она не будет отображаться в режиме редактирования. Он отображается как выбранный, и пока я не выберу другую строку, только тогда, когда я снова выберу эту строку, она будет в режиме редактирования.

Как можно решить эту проблему, чтобы сохраненная строка снова была редактируемой при выборе? (а не после редактирования другой строки)

1 Ответ

0 голосов
/ 10 февраля 2011

Хорошо, я думаю, что нашел решение. У вас есть этот фрагмент кода в вашей инициализации сетки JS? Могу поспорить, что да, потому что это в официальной демонстрации jqGrid:

onSelectRow: function(id)
{
   if(id && id !== lastsel)
   {
      grid.jqGrid( 'restoreRow', lastsel );
      grid.jqGrid( 'editRow', id, true, null, function(){ grid.trigger('reloadGrid');return true; } );
      lastsel = id;
   }
},

Если да, проблема здесь. Если вы хотите отредактировать строку, которая фактически была отредактирована, вы должны написать это примерно так:

onSelectRow: function(id)
{
    if(id && id !== lastsel)
    {
        grid.jqGrid( 'restoreRow', lastsel );
        grid.jqGrid( 'editRow', id, true, null, function(){ grid.trigger('reloadGrid');return true; } );
        lastsel = id;
    }
    else if(id && id === lastsel)
        grid.jqGrid( 'editRow', id, true, null, function(){ grid.trigger('reloadGrid');return true; }  );

или просто измените, если условие только if (id) {...} },

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...