jquery - JQGrid - OndblClickRow 事件按所选行选择字段值

标签 jquery jqgrid

我真的很苦恼,似乎无法让它发挥作用。

基本上我有一个预订表,例如

id    bookref    account    fare

1     BR1          101      10.00

2     BR2          202      20.00

我的 Jqgrid 显示了所有这些信息,我想要做的是获取选择行的 bookref 值。我当前的功能是:

    ondblClickRow: function(rowid)
    {
        var grid = $('#bookings');
        var sel_id = grid.jqGrid('getGridParam', 'selrow');
        var myCellData = grid.jqGrid('getCell', sel_id, 'bookref');

        alert(myCellData);

    },

当我双击第一行时,我会返回“BR​​1”,这是正确的,如果我双击任何其他行,我仍然会得到“BR1”,而如果单击第二行,我应该得到“BR2”。

有人可以帮我解决这个问题吗?非常感谢

最佳答案

如果您在我的代码中看到这里,我还在网格中使用 ondblClickRow。如果您在这里看到,我正在获取所有行值并根据需要进行自己的更改,最后使用 document.location.href 加载作业详细信息页面。
我可以对网格中的所有行执行此操作。

ondblClickRow: function(rowId) {
    var rowData = jQuery(this).getRowData(rowId); 
    var jobNumber = rowData['jobNumber'];
    var jobName = rowData['description'];
    var jobCustomer = rowData['customerName'];
    var jobStatus = rowData['jobStatus'];
    jobName = jobName.replace(/&/g, "``");
    jobName = jobName.replace(/#/, "__");
    var aQryStr = "jobNumber=" + jobNumber + "&jobName=" + jobName + "&jobCustomer=" + jobCustomer;
    console.log("./jobflow?token=view&" + aQryStr);
    document.location.href = "./jobflow?token=view&" + aQryStr;
},

如果您想查看我的完整网格代码:

$("#jobsGrid").jqGrid({
        url:'../job_controller',
        datatype: 'JSON',
        mtype: 'POST',
        pager: jQuery('#jobsGridPager'),
        colNames:['Job #','Project','City', 'Rep', 'Status', 'Customer', 'Cust PO #', 'Rep. #'],
        colModel :[
            {name:'jobNumber', index:'jobNumber', align:'left', width:50, editable:true,hidden:false, edittype:'text',
                    editoptions:{size:30,readonly:true},editrules:{edithidden:false,required:false}},
            {name:'description', index:'description', align:'left', width:150,hidden:false, editable:true, 
                    editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}},
            {name:'locationCity', index:'locationCity', align:'', width:90,hidden:false, editable:true,
                    editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}},
            {name:'initials', index:'initials', align:'center', width:30,hidden:false, editable:true,
                    editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}},
            {name:'jobStatus', index:'jobStatus', align:'center', width:60,hidden:false, editable:true,
                    editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}},
            {name:'customerName', index:'customerName', align:'', width:150,hidden:false, editable:true, 
                    editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}},
            {name:'customerPONumber', index:'customerPONumber', align:'center', width:90, hidden:false, editable:true, 
                    editoptions:{}, editrules:{edithidden:true,required:false}},
            {name:'code', index:'code', align:'center', width:40,hidden:false, editable:true,
                    editoptions:{size:20,readonly:false, alignText:'right'},editrules:{edithidden:true,required:true}}
        ],
        rowNum: 50, pgbuttons: true,    
        recordtext: '',
        rowList: [50, 100, 200, 500, 1000],
        viewrecords: true,
        pager: '#jobsGridPager',
        sortname: 'employeeId', sortorder: "asc", imgpath: 'themes/basic/images',   caption: 'Jobs',
        height:547, width: 1140,/*scrollOffset:0,*/ rownumbers:true, altRows: true, altclass:'myAltRowClass', rownumWidth: 45,
        ondblClickRow: function(rowId) {
            var rowData = jQuery(this).getRowData(rowId); 
            var jobNumber = rowData['jobNumber'];
            var jobName = "" + rowData['description'];
            var jobCustomer = rowData['customerName'];
            var jobStatus = rowData['jobStatus'];
            jobName = jobName.replace(/&/g, "``");
            jobName = jobName.replace(/#/, "__");
            var aQryStr = "jobNumber=" + jobNumber + "&jobName=" + jobName + "&jobCustomer=" + jobCustomer;
            console.log("./jobflow?token=view&" + aQryStr);
            document.location.href = "./jobflow?token=view&" + aQryStr;
        },
        jsonReader : {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            cell: "cell",
            id: "id",
            userdata: "userdata"
        }
    }).navGrid('#jobsGridPager', add:false,edit:false,del:false,refresh:false,search:false}
    );

关于jquery - JQGrid - OndblClickRow 事件按所选行选择字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10807263/

相关文章:

javascript - Jqgrid - 表不显示响应行为

jquery - 无法从 jQuery 发布到 Nodejs 端点

jquery - JQGrid - 创建没有列名的网格

jquery - jqgrid和查看记录,如何设置宽度

javascript - 如何使选择的下拉列表高于所有其他元素

javascript - jqGrid 显示 'edit' 图标用于行内编辑

jquery - 标题 jqGrid 中奇怪的 Firefox 问题

javascript - Highcharts Stockchart 中的 MonthPicker 不更改月份

javascript - IE 将数据存储在缓存中,更改未反射(reflect)在 jQuery 中

javascript - 为什么将 jQuery UI 日期选择器的默认值设置为匿名函数不起作用?