jqGrid с включенной множественной выборкой, как отключить проверку флажка при выборе строки - PullRequest
3 голосов
/ 06 января 2010

Я использую jqGrid с включенным множественным выбором. Это работает, но у меня есть побочный эффект, от которого я бы хотел избавиться. Всякий раз, когда кто-то нажимает на строку, флажок также изменяет его проверенное состояние. Я хотел бы оставить это.

Я пробовал это:

onSelectRow: function(row) { return false; }

и настройка

beforeSelectRow: function(rowid, e) { return true; },

Если я установлю это в false, я получу желаемое поведение, но затем я также не получу ни одного выбранного идентификатора через

jqGrid('getGridParam', 'selarrrow');

У кого-нибудь есть идея, чтобы это исправить?

Ответы [ 9 ]

8 голосов
/ 16 февраля 2010
$("#Grid_ID").jqGrid('hideCol', 'cb');

Добавить строку кода над функцией gridComplete

2 голосов
/ 11 декабря 2012
beforeSelectRow: function (rowid, e)        
{
    var $myGrid = $(this),
    i = $.jgrid.getCellIndex($(e.target).closest('td')[0]),
    cm = $myGrid.jqGrid('getGridParam', 'colModel');
    return (cm[i].name === 'cb');
},
2 голосов
/ 08 ноября 2010

У меня был случай, когда у меня было несколько действий, которые были вызваны выбором ячеек, и я не хотел, чтобы строка была выбрана.

Я проверяю номер столбца в функции onCellSelect и переключаю флажок обратно для столбцов, отличных от первого столбца выбора

if (iCol > 1) {
    $(grid).jqGrid('setSelection', rowid, false);
}
1 голос
/ 21 февраля 2012

добавить метод инициализации

  <ClientSideEvents GridInitialized="grdInit">

  function grdInit()
  { 
    var myGrid = $("#myGrid"); 
    myGrid.jqGrid('hideCol', 'cb');
  }
1 голос
/ 15 ноября 2011

Я попробовал подход awattar, но обнаружил, что srcElement не определен. Я использовал это вместо:

    beforeSelectRow: function(rowid, e){ 
      var td = e.target;
      var index = $.jgrid.getCellIndex(td);
      if(index == 1){ 
        return true; 
      }
      return false; 
    },
0 голосов
/ 22 сентября 2017

Попробуйте ниже единицы. Ниже код помогает мне решить эту проблему. С помощью этого вы не можете нажать на сетку.

beforeSelectRow: function(rowid, e) {
        return false;
    }
0 голосов
/ 02 декабря 2010
    beforeSelectRow: function(rowid, e){
    if(e.srcElement.type == "checkbox"){
     return true;
    }
    return false;
   },
0 голосов
/ 24 августа 2010

Мне удалось это сделать, проверив идентификатор столбца, предоставленный обработчику события onSelect. Если это какой-либо столбец, кроме первого, верните false. Мне пришлось сделать это в нескольких обработчиках событий, чтобы получить предпочтительное поведение.

0 голосов
/ 07 января 2010

jqGrid предназначен для работы таким образом; у вас есть веская причина не отображать флажки?

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