Dojo dgrid:在网格的不可见部分中没有选择突出显示

时间:2017-07-10 15:33:32

标签: dojo selection dgrid

我在OnDemandGrid(dojo 1.12.1)中选择了一个问题,我需要一些帮助。 我的网格的一部分隐藏在创作中,这使得选择单个'工作很奇怪,选择仅在内容的可见部分有效。当我滚动时,我的行[{3}}上没有更多的突出显示。 但是,如果我对列应用排序,则会刷新内容并使整行变为可选。

此页面上的示例适用于selectionMode中的EnhancedGrid:' single'加载后内容的隐藏部分没有错误。 img1,任何想法如何实现它?

创建OnDemandGrid以解决问题时,我该怎么办?我试过把一个css参数框大小调整:border-box,但它没有帮助我。

enchancedgrid有一些类似的问题,但是对我来说这个问题并不好,也许是因为我使用了OnDemandGrid( dojo EnchancedGrid项目不以编程方式在视图的不可见部分中选择)

require([
     ...
    'dojo/store/Memory',
    'dgrid/OnDemandGrid',
    'dgrid/Selection',
    'dgrid/extensions/ColumnResizer',
    'dgrid/extensions/DijitRegistry'

], function (Memory, OnDemandGrid, Selection, ColumnResizer, DijitRegistry ) {
     var columNs = {First_Name: {label: 'First Name'},
                    Last_Name: {label: 'Last Name'},
                    hello: {label: 'hello'},
                    age: {label: 'age'},
                    size: {label: 'size'},
                    name: {label: 'name'},
                    code: {label: 'code'},
                    id: {label: 'id'},
                    mdp: {label: 'mdp'},
                    username: {label: 'username'},
                    grid: {label: 'grid'}
                    };

   var store = new Memory({ data: createData() });  

   var CustomGrid = declare([OnDemandGrid, Selection, ColumnResizer, DijitRegistry]);

   var grid = new CustomGrid({
                        selectionMode: 'single',
                        cellNavigation: false, 
                        store: store, 
                        columns: columNs
                    }, 'grid');          
   grid.startup();



   function createData() {
        var data = [];
        var column;
        var i;
        var item;

        for (i = 0; i < 50; i++) {
            item = {};
            for (column in { First_Name: 1, Last_Name: 1, hello: 1, age: 1, size: 1, name: 1, code: 1, id: 1, mdp: 1, username: 1, grid: 1 }) {
                item.id = i;
                item[column] = column + '_' + (i + 1);
            }
            data.push(item);
        }

        return data;
    }
});

//css
.dgrid {
    height: 25em !important;
    width: 100%;
}
.dgrid .dgrid-scroller {
    margin-top: 24px !important; 
}
.dgrid-cell { 
    width: 70px !important;
}
.dgrid-column-set-scroller {
display: inline-block;
overflow-x: auto;
overflow-y: hidden;

}

1 个答案:

答案 0 :(得分:0)

我无法重现你的问题。请参阅小提琴here

有一点不同之处在于我更换了dojo / store / Memory,它给了我一个错误(如果你没有得到这个错误,也许你正在使用dgrid版本,那么早于0.4?),还有dstore / Memory。

然后小提琴正在使用dojo 1.12.2(应该与1.12.1没有区别)和dgrid / dstore 1.1.0(如果您使用的是较旧的版本,则可以解释差异)。它还使用了dijit的claro.css&amp; dgrid的dgrid.css。请参阅下面的内容(从jsfiddle中提取)我修改过的源代码部分:

var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
var link = urlHelper.Action("Details", "Cases", new { id = caseNumber });