2010-01-06 98 views
2

我正在使用一個jqGrid與multiselect穿上。這有效,但我有一個副作用,我想擺脫。每當有人點擊一行時,複選框也會改變它的檢查狀態。我想離開這一點。jqGrid與多選擇,如何關閉複選框檢查當選中行時

我嘗試這樣做:

onSelectRow: function(row) { return false; } 

和設置

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

如果我設置爲false,我獲得所需的行爲,但後來我也不要通過

得到任何選擇的ID的了
jqGrid('getGridParam', 'selarrrow'); 

任何人有想法解決這個問題嗎?

+0

重複的查詢,請參閱我的答案[這裏](https://stackoverflow.com/a/47758337/8743891) – 2017-12-11 17:53:29

回答

0

jqGrid旨在以這種方式工作;你是否有充分的理由不想顯示覆選框?

+0

我已經怕的就是這個。可用性團隊確信這不是正確的行爲,並希望以其他方式。 – XIII 2010-01-07 08:52:03

7
$("#Grid_ID").jqGrid('hideCol', 'cb'); 

添加上面的代碼行中gridComplete功能通過檢查提供給ONSELECT事件處理程序列ID

+0

這適用於我! – Losbear 2013-08-12 21:58:19

+0

我不會用這個新的jqgrid工作,但它已經7歲了,所以你可以保留你的觀點。 – catbadger 2017-11-03 16:44:35

0

我能夠完成。如果它不是第一列,則返回false。爲了獲得首選的行爲,我必須在幾個事件處理程序中執行此操作。

2

我有一個案例,我有一堆行動是由選擇單元格觸發的,我不希望行被選中。

我檢查的onCellSelect功能列數和切換複選框選擇回比第一選擇列

if (iCol > 1) { 
    $(grid).jqGrid('setSelection', rowid, false); 
} 
0
beforeSelectRow: function(rowid, e){ 
    if(e.srcElement.type == "checkbox"){ 
    return true; 
    } 
    return false; 
    }, 
1

我試圖awattar的做法卻發現srcElement是不確定等欄目。我用這個來代替:

beforeSelectRow: function(rowid, e){ 
     var td = e.target; 
     var index = $.jgrid.getCellIndex(td); 
     if(index == 1){ 
     return true; 
     } 
     return false; 
    }, 
1

附加init方法

<ClientSideEvents GridInitialized="grdInit"> 

    function grdInit() 
    { 
    var myGrid = $("#myGrid"); 
    myGrid.jqGrid('hideCol', 'cb'); 
    } 
2
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'); 
}, 
0

嘗試下面的一個。下面的代碼可以幫助我重新解決這個問題。在這個幫助下你不能點擊到網格上。

beforeSelectRow: function(rowid, e) { 
     return false; 
    } 
相關問題