【问题标题】:Sorting a Column by Default (on load) Using Dojo Dgrid使用 Dojo Dgrid 默认(加载时)对列进行排序
【发布时间】:2013-04-24 00:25:09
【问题描述】:

从 dojo 商店加载 dgrid 时,有没有办法指定要默认排序的列。

假设我有 2 列,名称和电子邮件,我希望在第一次加载网格时默认对名称列进行排序。我想要的是相当于用户单击“名称”标题(带有指示排序方向的排序箭头)。

谢谢, 约翰

【问题讨论】:

  • 似乎我找到了我自己问题的答案:mytable.set('sort', 'name');

标签: sorting dojo dgrid


【解决方案1】:

你可以这样做:

var mygrid = new OnDemandGrid({
    store : someStore,
    queryOptions: {
        sort: [{ attribute: "name" }]
    }
    // rest of your grid properties
}, "someNode");

【讨论】:

  • 该属性当然会接受列名和方向。例如:[{attribute: 'id DESC'}]
  • 对于 dGrid,这将是 [{ attribute: "id", descending: true }]。如果您省略了 descending : true,则假定排序是升序的。见dojofoundation.org/packages/dgrid/tutorials/grids_and_stores
  • 唯一的缺点是没有显示箭头(向上或向下 - 取决于您的降序值)。只有当用户实际点击表头时才会显示。
  • 这似乎为我设置了排序箭头,所以网格可能已更新 grid.set('sort', [{ attribute: this.defaultSortField, descending: this.defaultSortDirDesc }] )跨度>
【解决方案2】:

dgrid 1.1.0 - 设置初始/默认排序顺序

    var TrackableRest = declare([Rest, SimpleQuery, Trackable]);
    var store = new TrackableRest({target: apiUrl, useRangeHeaders: true, idProperty: 'id'});
    var grid = new (declare([OnDemandGrid, Selection, Editor]))({
        collection: store,
        sort: [{"property":"name", "descending": false}],
        className: "dgrid-autoheight",
        columns: {
            id: {
                label: core.id
            },
            category_text: {
                label: asset.category
            },
            name: {
                label: asset.model,
            },

【讨论】:

  • sort 属性的正确值是一个对象数组:[ { property: ''name", descending: true } ]
猜你喜欢
  • 2013-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多