Jquery gridComplete函数中的jqGrid绑定事件

Jquery gridComplete函数中的jqGrid绑定事件,jquery,jqgrid,Jquery,Jqgrid,我正在ASP.NETMVC项目中使用jqgrid。我正在尝试在gridComplete函数中绑定click事件。然后我想检测被点击的单元格是否可编辑。到目前为止,我得到了这个: gridComplete: function () { var ids = jQuery("#resources").jqGrid('getDataIDs'); for (var i = 0; i < ids.length; i++) {

我正在ASP.NETMVC项目中使用jqgrid。我正在尝试在gridComplete函数中绑定click事件。然后我想检测被点击的单元格是否可编辑。到目前为止,我得到了这个:

    gridComplete: function () {
                var ids = jQuery("#resources").jqGrid('getDataIDs');
                for (var i = 0; i < ids.length; i++) {
                    var cl = ids[i];
                    jQuery('#resources').jqGrid('editRow', cl);
                }
                $("#resources td").click(function(e) {
                    ...//here I want to check if clicked cell is editable
                });

     }

我不完全理解你的要求。单击“可编辑”或“不可编辑”单元格时,您还想执行哪些操作

尽管如此,我还是建议您使用回调处理程序,而不是将
click
事件绑定到网格的每个单元格。为了理解每个绑定,需要web浏览器的一些资源。与将事件绑定到单元格不同,您只能对单元格的任何父元素进行一次绑定,如
元素(网格本身)。由于称为的机制,事件传播或事件冒泡未处理的事件将尝试由父元素的同一事件处理程序或父元素的父事件处理程序来处理,依此类推。事件处理程序接收有助于检测最初单击的元素的属性

所以你可以像这样使用代码

onCellSelect: function (rowid, iCol, cellcontent, e) {
    var colModel = $(this).jqGrid('getGridParam', 'colModel');
    if ($.isArray(colModel) && !colModel[iCol].editable) {
        // non-editable cell is clicked 
    }
}
还是这个

onCellSelect: function (rowid, iCol, cellcontent, e) {
    if (!this.p.colModel[iCol].editable) {
        // non-editable cell is clicked 
    }
}

检测当前单击的单元格是否不可编辑。

我尝试使用onCellSelect事件,但它仅对不可编辑的单元格触发。我的要求是,我必须淡入或淡出页面上的某些部分,具体取决于单击的可编辑/不可编辑单元格。@maciek:对不起,我不明白你的意思。因为我看到你自己以某种方式解决了这个问题,所以现在明确你的确切要求可能并不重要。
onCellSelect: function (rowid, iCol, cellcontent, e) {
    if (!this.p.colModel[iCol].editable) {
        // non-editable cell is clicked 
    }
}