2013-07-26 3 views
0

Я использую собственный форматтер для создания гиперссылок в одном из столбцов моей сетки.Как отключить гиперссылки в строке jQGrid

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

Любые идеи о том, как отключить ссылки?

Это моя loadComplete функция:

loadComplete: function (data) { 

      var ids =jQuery("#list").jqGrid('getDataIDs'); 

      for(var i=0;i < ids.length;i++){ 

       var rowId = ids[i]; 
       var mod = jQuery("#list").jqGrid('getCell',ids[i],'mod'); 

       if(mod=='y'){ 

       jQuery("#jqg_list_"+rowId).attr("disabled", true); 
       $("#list").jqGrid('setRowData',ids[i],false, {weightfont:'bold',color:'silver'}); 

       var iCol = getColumnIndexByName.call(this, 'adate'); 

       $(this).jqGrid('doInEachRow', function (row, rowId, localRowData) { 
        $(row.cells[iCol]).children("a").click(function (e) { 
         e.preventDefault(); 
         // any your code here 
         alert("No Good"); 
         return false; 
        }); 
       }); 

        } 
       } 

      } 

Я хочу, чтобы ссылки отключены во всех строках, где значение мод столбца = у

ответ

0

Вы можете попробовать использовать onClick дозвон dynamicLink форматировщика описанного here, here и here. Это дает вам максимальную гибкость. Внутри onClick callback вы можете проверить что-то вроде $(e.target).closest("tr.jqgrow").hasClass("not-editable-row") и просто ничего не делать в этом случае.

+0

спасибо @Oleg! Я попытался использовать doInEachRow, но ничего не происходит. любезно ссылайтесь на мой модифицированный код в редакторе – AbtPst

+0

, нет ли способа изменить значение внутри ячейки? если я могу получить доступ к данным ячейки, могу ли я изменить свойство onclick? Я знаю, что все, что мне нужно сделать, это вернуть false из функции onclick ссылки – AbtPst

+0

@ user2334092: Я имею в виду, что вы должны использовать 'formatter: dynamicLink" вместо "formatter:" showlink "'. Кстати, надеюсь, вы знаете, что для перехода на URL-адрес вы можете просто назначить новое значение 'window.location' или' window.location.href'. Вы можете сделать это внутри обратного вызова onClick. – Oleg

Смежные вопросы