Jquery 基于jQgrid中给定条件的行之间的条件操作?

Jquery 基于jQgrid中给定条件的行之间的条件操作?,jquery,jqgrid,Jquery,Jqgrid,我需要在基于jqGrid 4.4.1网格中给定条件的操作之间进行交换。请看下图: 其工作原理是: 如果类型为api\u response,则操作应仅为放大镜图标 如果类型是api\u request,则操作应该是第二个图标,但放大镜不应该在那里 以下是我创建按钮的方式: $.fn.fmatter.btnFormatter = function (cellValue, options, rowData, addOrEdit) { return '<a href="#">'

我需要在基于jqGrid 4.4.1网格中给定条件的操作之间进行交换。请看下图:

其工作原理是:

  • 如果类型为
    api\u response
    ,则
    操作应仅为放大镜图标
  • 如果类型是
    api\u request
    ,则
    操作应该是第二个图标,但放大镜不应该在那里
以下是我创建按钮的方式:

$.fn.fmatter.btnFormatter = function (cellValue, options, rowData, addOrEdit) {
    return '<a href="#">' +
        '<img class="api_button" data-id="' + options.rowId + '" src="/images/icons/16x16/document_view.png" alt="Show API Response Data" title="Show API Response Data" />' +
        '</a>' +
        '<a href="/sf/api-logs/error/' + options.rowId + '">' +
        '<img class="error_button" data-id="' + options.rowId + '" src="/images/icons/16x16/document_warning.png" alt="Show Errors" title="Show Errors" />' +
        '</a>';
};

$(function () {
    $("#grid").jqGrid({
        url: '/api-logs',
        datatype: "json",
        colNames: $('#colnames').data('values'),
        colModel: $('#colmodel').data('values'),
        width: 980,
        height: 300,
        pager: "#gridpager",
        toppager: true,
        hoverrows: true,
        shrinkToFit: true,
        autowidth: true,
        rownumbers: true,
        viewrecords: true,
        rowList: [10, 20, 50, 100],
        data: [],
        rownumWidth: 50,
        gridview: true,
        sortable: true,
        rowattr: function (item) {
            if (item.type === "api_response") {
                return {"class": "api_response"};
            } else if (item.type === 'api_request') {
                return {"class": "api_request"};
            }
        },
        jsonReader: {
            root: 'rows',
            page: 'page',
            total: 'total',
            records: 'records',
            cell: '',
            repeatitems: false
        }
    });
});
$.fn.fmatter.btnFormatter=函数(单元格值、选项、行数据、添加或编辑){
返回“”+
'';
};
$(函数(){
$(“#网格”).jqGrid({
url:“/api日志”,
数据类型:“json”,
colNames:$('#colNames')。数据('values'),
colModel:$('#colModel')。数据('值'),
宽度:980,
身高:300,
寻呼机:“#gridpager”,
是的,
没错,
shrinkToFit:是的,
自动宽度:正确,
行数:对,
viewrecords:是的,
行列表:[10,20,50,100],
数据:[],
行宽:50,
gridview:没错,
可排序:是的,
rowattr:函数(项){
如果(item.type==“api\U响应”){
返回{“类”:“api_响应”};
}else if(item.type===“api\U请求”){
返回{“类”:“api_请求”};
}
},
jsonReader:{
root:'行',
第页:'第页',
总计:'总计',
记录:'记录',
单元格:“”,
重复项:false
}
});
});
当然,第一列应用了
btinformator


如何执行此操作?

您可以修改
$.fn.fmatter.btinformator
的代码,该代码用于测试
行数据。键入
的方式与在
行属性
回调中执行的方式相同


无论如何,我会严格建议您测试现有代码是否与当前版本的免费jqGrid(版本4.14.1)兼容。您可以修改3行HTML代码,并从CDN加载CSS和JS文件(请参阅)。jqGrid的4.4.1版已经死了。使用如此陈旧且不受支持的版本真的很危险

如何创建放大镜图标?您应该发布您使用的JavaScript代码。旧的jqGrid 4.4.1无法创建自定义操作按钮。此外,jqGrid 4.4.1已经使用了近5年。这是一个死版本,多年来一直不受支持。(当前版本为4.14.1)支持自定义按钮,可根据输入数据有条件地显示这些按钮。需要定义
actionsNavOptions.isDisplayButtons
回调。有关详细信息,请参见created for。@Oleg我已将代码添加到OP中,但我现在无法更新库,因为有一个完整的系统基于此版本工作,我不知道BC将如何运行。是的,您使用
ActionsAvoptions
的示例对我不起作用,除非这是此版本的一部分:-|