Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Slickgrid复选框事件问题_Javascript_Jquery_Slickgrid - Fatal编程技术网

Javascript Slickgrid复选框事件问题

Javascript Slickgrid复选框事件问题,javascript,jquery,slickgrid,Javascript,Jquery,Slickgrid,我正在使用Slikgrid javascript库,并按照本教程制作带有复选框的网格: 使用的代码如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="../

我正在使用Slikgrid javascript库,并按照本教程制作带有复选框的网格:

使用的代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../slick.grid.css" type="text/css"/>
<link rel="stylesheet" href="../css/smoothness/jquery-ui-1.8.16.custom.css" type="text/css"/>
<link rel="stylesheet" href="examples.css" type="text/css"/>
<link rel="stylesheet" href="../controls/slick.columnpicker.css" type="text/css"/>
<style>
.slick-cell-checkboxsel {
background: #f0f0f0;
border-right-color: silver;
border-right-style: solid;
}
</style>
</head>
<body>
<div style="position:relative">
<div style="width:600px;">
<div id="myGrid" style="width:100%;height:500px;"></div>
</div>
<div class="options-panel">
<h2>Demonstrates:</h2>
<ul>
<li>Checkbox row select column</li>
</ul>
<h2>View Source:</h2>
<ul>
<li><A href="https://github.com/mleibman/SlickGrid/blob/gh-pages/examples/example-checkbox-row-select.html" target="_sourcewindow"> View the source for this example on Github</a></li>
</ul>
</div>
</div>
<script src="../lib/firebugx.js"></script>
<script src="../lib/jquery-1.7.min.js"></script>
<script src="../lib/jquery-ui-1.8.16.custom.min.js"></script>
<script src="../lib/jquery.event.drag-2.2.js"></script>
<script src="../slick.core.js"></script>
<script src="../plugins/slick.checkboxselectcolumn.js"></script>
<script src="../plugins/slick.autotooltips.js"></script>
<script src="../plugins/slick.cellrangedecorator.js"></script>
<script src="../plugins/slick.cellrangeselector.js"></script>
<script src="../plugins/slick.cellcopymanager.js"></script>
<script src="../plugins/slick.cellselectionmodel.js"></script>
<script src="../plugins/slick.rowselectionmodel.js"></script>
<script src="../controls/slick.columnpicker.js"></script>
<script src="../slick.formatters.js"></script>
<script src="../slick.editors.js"></script>
<script src="../slick.grid.js"></script>
<script>
var grid;
var data = [];
var options = {
editable: true,
enableCellNavigation: true,
asyncEditorLoading: false,
autoEdit: false
};
var columns = [];
$(function () {
for (var i = 0; i < 100; i++) {
var d = (data[i] = {});
d[0] = "Row " + i;
}
var checkboxSelector = new Slick.CheckboxSelectColumn({
cssClass: "slick-cell-checkboxsel"
});
columns.push(checkboxSelector.getColumnDefinition());
for (var i = 0; i < 5; i++) {
columns.push({
id: i,
name: String.fromCharCode("A".charCodeAt(0) + i),
field: i,
width: 100,
editor: Slick.Editors.Text
});
}
grid = new Slick.Grid("#myGrid", data, columns, options);
grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false}));
grid.registerPlugin(checkboxSelector);
var columnpicker = new Slick.Controls.ColumnPicker(columns, grid, options);
})
</script>
</body>
</html>

.光滑的格子格子{
背景:#f0;
右边框颜色:银色;
右边框样式:实心;
}
演示:
  • 复选框行选择列
查看来源:
var网格; var数据=[]; 变量选项={ 是的, enableCellNavigation:true, asyncEditorLoading:false, 自动编辑:false }; var列=[]; $(函数(){ 对于(变量i=0;i<100;i++){ 变量d=(数据[i]={}); d[0]=“行”+i; } var checkboxSelector=new Slick.CheckboxSelectColumn({ cssClass:“光滑单元格复选框SEL” }); columns.push(checkboxSelector.getColumnDefinition()); 对于(变量i=0;i<5;i++){ 柱推({ id:我, 名称:String.fromCharCode(“A”.charCodeAt(0)+i), 菲尔德:我, 宽度:100, 编辑:Slick.Editors.Text }); } grid=new Slick.grid(“myGrid”,数据、列、选项); grid.setSelectionModel(新的Slick.RowSelectionModel({selectActiveRow:false})); grid.registerPlugin(复选框选择器); var columnpicker=new Slick.Controls.columnpicker(列、网格、选项); })
我正在尝试响应复选框单击事件,但我找不到处理该事件的方法。
我想做的是创建一个数组,它保存第一行元素数据,如[“row 0”,…],并在选中第一个复选框时显示它。如何处理该事件?

您要对其采取行动的事件是。唯一的问题是,没有直接链接返回到触发事件的特定行,这在侦听其他事件时可用,例如
onMouseEnter

如果将这两种方法结合使用,则可以使用
onmouseinter
来“跟踪”当前行

var context = {};
grid.onMouseEnter.subscribe(function (evt, args) {
    var cell = grid.getCellFromEvent(evt)
    context.rowIndex = cell.row;
    context.row = grid.getDataItem(cell.row);
})
在SelectedRowsChanged中处理数据操作/呈现

grid.onSelectedRowsChanged.subscribe(function (evt, args) {

    if (!context.row) {
        var rows = grid.getData();
        for (r in rows) {
            var row = rows[r]
            for (i = 1; i < columns.length; ++i) {
                row[i] = args.rows.length == 0 ? '' : dataContainer[r][i]
            }
        }
        grid.invalidateAllRows();
    } else {

        var display = args.rows.indexOf(context.rowIndex) >= 0;

        for (i = 1; i < columns.length; ++i) {
            context.row[i] = display ? dataContainer[context.rowIndex][i] : ''
        }

        grid.invalidateRow(context.rowIndex);
    }

    grid.render();
})
grid.onSelectedRowsChanged.subscribe(函数(evt,args){
如果(!context.row){
var rows=grid.getData();
用于(行中的r){
变量行=行[r]
对于(i=1;i=0;
对于(i=1;i
在此上下文中,
dataContainer
与数组相比是一个“映射”。根据数据的大小,您可能需要更快的查找

注意此实现仅在使用
{selectActiveRow:false}
RowSelectionModel
选项时有效。否则,需要更自定义的数据处理实现


如何使用此示例管理排序和搜索功能?