Javascript 在keypress网格上调用自定义方法

Javascript 在keypress网格上调用自定义方法,javascript,jquery,slickgrid,Javascript,Jquery,Slickgrid,我正在使用slickgrid显示某些数据。如何向网格行添加自定义方法 例如:每当按下enter键时,我都想用当前行数据打开模式框。如果我很好地满足了您的要求,那么请尝试此代码 createInvoiceDetailsTable : function () { var gridOptions, gridColumns; gridColumns = [ {id:'ean_code', name:'EAN', field:'ean_code', width:125,

我正在使用slickgrid显示某些数据。如何向网格行添加自定义方法


例如:每当按下enter键时,我都想用当前行数据打开模式框。

如果我很好地满足了您的要求,那么请尝试此代码

createInvoiceDetailsTable : function () {
    var gridOptions, gridColumns;

    gridColumns = [
        {id:'ean_code', name:'EAN', field:'ean_code', width:125, cssClass: 'grid-cell'},
        {id:'description', name:'Product Description', field:'description', width:250, formatter:opr.invoice.productGridDescriptionFormatter, cssClass: 'grid-cell'},
        {id:'qty', name:'Qty', field:'qty', width:40, , formatter:UpdateQtyBtnFormatter},
    ];



    gridOptions = {
        editable: true,
        autoEdit: true,
        enableAddRow: false,
        enableCellNavigation: true,
        asyncEditorLoading: false,
        enableColumnReorder: false,
        rowHeight: 35
    };

    dataView = new Slick.Data.DataView();
    invoiceProductGrid = new Slick.Grid($('#invoice_details_grid_div'), dataView , gridColumns, gridOptions);

    function UpdateQtyBtnFormatter (row, cell, value, columnDef, dataContext) {
        return '<input type="button" style="width:30px; height:30px;" class="update_invoice_product_qty" id="' + value + '" value="Q"/>';
}
}
createInvoiceDetailsTable:函数(){
var gridOptions,gridColumns;
网格列=[
{id:'ean_code',name:'ean',field:'ean_code',width:125,cssClass:'grid cell'},
{id:'description',name:'Product description',field:'description',width:250,格式设置程序:opr.invoice.ProductGridDescription格式设置程序,cssClass:'grid cell'},
{id:'qty',name:'qty',field:'qty',宽度:40,格式化程序:UpdateQtyBtnFormatter},
];
网格选项={
是的,
自动编辑:正确,
enableAddRow:false,
enableCellNavigation:true,
asyncEditorLoading:false,
enableColumnReorder:false,
行高:35
};
dataView=new Slick.Data.dataView();
invoiceProductGrid=new Slick.Grid($(“#发票_详细信息_网格_div”)、dataView、gridColumns、gridOptions);
函数UpdateQtyBtnFormatter(行、单元格、值、列定义、数据上下文){
返回“”;
}
}
使用此
update\u invoice\u product\u qty
类名,您可以编写事件


如果这不是您的要求,那么请与您之前尝试过的一些代码或过程共享。

如果我很好地理解了您的要求,那么请尝试一下这些代码

createInvoiceDetailsTable : function () {
    var gridOptions, gridColumns;

    gridColumns = [
        {id:'ean_code', name:'EAN', field:'ean_code', width:125, cssClass: 'grid-cell'},
        {id:'description', name:'Product Description', field:'description', width:250, formatter:opr.invoice.productGridDescriptionFormatter, cssClass: 'grid-cell'},
        {id:'qty', name:'Qty', field:'qty', width:40, , formatter:UpdateQtyBtnFormatter},
    ];



    gridOptions = {
        editable: true,
        autoEdit: true,
        enableAddRow: false,
        enableCellNavigation: true,
        asyncEditorLoading: false,
        enableColumnReorder: false,
        rowHeight: 35
    };

    dataView = new Slick.Data.DataView();
    invoiceProductGrid = new Slick.Grid($('#invoice_details_grid_div'), dataView , gridColumns, gridOptions);

    function UpdateQtyBtnFormatter (row, cell, value, columnDef, dataContext) {
        return '<input type="button" style="width:30px; height:30px;" class="update_invoice_product_qty" id="' + value + '" value="Q"/>';
}
}
createInvoiceDetailsTable:函数(){
var gridOptions,gridColumns;
网格列=[
{id:'ean_code',name:'ean',field:'ean_code',width:125,cssClass:'grid cell'},
{id:'description',name:'Product description',field:'description',width:250,格式设置程序:opr.invoice.ProductGridDescription格式设置程序,cssClass:'grid cell'},
{id:'qty',name:'qty',field:'qty',宽度:40,格式化程序:UpdateQtyBtnFormatter},
];
网格选项={
是的,
自动编辑:正确,
enableAddRow:false,
enableCellNavigation:true,
asyncEditorLoading:false,
enableColumnReorder:false,
行高:35
};
dataView=new Slick.Data.dataView();
invoiceProductGrid=new Slick.Grid($(“#发票_详细信息_网格_div”)、dataView、gridColumns、gridOptions);
函数UpdateQtyBtnFormatter(行、单元格、值、列定义、数据上下文){
返回“”;
}
}
使用此
update\u invoice\u product\u qty
类名,您可以编写事件


如果这不是您的要求,请与您之前尝试过的一些代码或过程共享。

您可以订阅网格中的
onKeyDown
事件来检查这一点。比如:

grid.onKeyDown.subscribe(function(e) {
   if (e.which == 13) {
      // open modal window
   }
});

让我知道这是否有帮助

您可以订阅网格中的
onKeyDown
事件来检查这一点。比如:

grid.onKeyDown.subscribe(function(e) {
   if (e.which == 13) {
      // open modal window
   }
});

让我知道这是否有帮助

给我们任何代码,也可以让jsfiddle好给我们任何代码,也可以让jsfiddle好