取消选中当前单击的行

时间:2014-11-12 15:41:12

标签: javascript grid jqwidget

所以,我很好奇是否可以在jQWidgets Grid中取消选中当前单击的行。

我尝试过以下代码,但似乎无效:

    $("#jqxGrid").on("rowclick", function (event) {

         var selectedRowIdx = event.args.rowindex;

         // this part doesn't work
         $("#jqxGrid").jqxGrid('unselectrow', selectedRowIdx);

         // this part doesn't work as well
         $("#jqxGrid").jqxGrid('clearselection');
         $("#jqxGrid").jqxGrid('selectrow', 0);

    });

这是我如何初始化网格:

    var columns = { .. some init values here };
    $('#jqxGrid').jqxGrid({
        autoheight: true
        , width: '100%'
        , pageable: true
        , altrows: true
        , source: {}
        , columnsresize: false
        , columnsheight: 25
        , autoheight: true
        , autorowheight: true
        , sortable: true
        , editable: true
        , altrows: true
        , selectionmode: 'singlerow'
        , pagermode: "simple"
        , columns: columns
        , ready : function() {
            columnSelection.initialize('#jqxGrid',0,"10",columns);
        }
        , cellhover: function (element, pageX, pageY){
            // hover churvabels here
        }
    });

2 个答案:

答案 0 :(得分:0)

我想您在选择之前尝试取消选择一行,因为在您单击它之后选择了一行。如果您将代码置于超时状态,它可能会起作用。

答案 1 :(得分:0)

好吧我也试图让这个也能运作,这是我在经过大量搜索后想出来的:

$("#jqxGrid").on('rowclick', function (event) { var index = $("#jqxGrid").jqxGrid('getselectedrowindex'); var clickedIndex = event.args.rowindex; if (clickedIndex == index) { setTimeout(function () { $("#jqxGrid").jqxGrid('clearselection'); }, 10); } });

此外,当您将源集数据字段创建为数据字段时,或者由于某种原因它将无法正常工作