标签: dstore

使用WebSocket和dgrid在自定义dstore中丢失事件

我正在尝试创建自定义Store,它应该使用WebSocket或REST(如果WebSocket失败).

代码文件rachet-store.js

它几乎完美地工作.它也适用于REST(myRest)也没有问题.

问题是如果使用wsStore并且如果我删除datagrid中第一页或第二页上的行,则会通知datagrid并刷新自身.但是,如果我删除第三页或任何其他页面上的行,则不会刷新商店.

我认为问题可能在某处sort(),因为使用Grid(或Pagination)的工作原理.(但它只是一个猜测......)

所以,问题是,我做错了什么?

javascript dojo websocket dgrid dstore

43
推荐指数
1
解决办法
659
查看次数

dojo dgrid与来自url(json数据)的存储重新加载/刷新按钮

首先,我使用的是dojo 1.1.0和dgrid 0.4.0.我正在创建一个包含几个dgrids的页面.特别是一个网格需要从URL加载JSON数据并显示它.它目前使用RequestMemory存储工作正常.然而,这是一个"记忆"商店.虽然这对其他一些人来说可能是微不足道的,但我需要找到一种方法来加载现在正在完成的数据,然后在屏幕上添加一个刷新按钮,调用必要的函数/方法从网址重新加载数据.重新填充dgrid.

JSON数据来自如下格式的url:

[{"id":1,"name":"trans1","username":"trans1","status":"Available","inactive":"no","checkedout":"false","details":"","assignedNum":"0","completedNum":"0","avgTime":"00:00","aaOn":true},{"id":2,"name":"trans2","username":"trans2","status":"Available","inactive":"no","checkedout":"false","details":"","assignedNum":"0","completedNum":"0","avgTime":"00:00","aaOn":true},{"id":3,"name":"trans3","username":"trans3","status":"Available","inactive":"no","checkedout":"false","details":"","assignedNum":"0","completedNum":"0","avgTime":"00:00","aaOn":false},{"id":4,"name":"trans4","username":"trans4","status":"Available","inactive":"no","checkedout":"false","details":"","assignedNum":"0","completedNum":"0","avgTime":"00:00","aaOn":false},{"id":5,"name":"trans5","username":"trans5","status":"Available","inactive":"no","checkedout":"false","details":"","assignedNum":"0","completedNum":"0","avgTime":"00:00","aaOn":false},{"id":6,"name":"trans6","username":"trans6","status":"Available","inactive":"no","checkedout":"false","details":"","assignedNum":"0","completedNum":"0","avgTime":"00:00","aaOn":false}]
Run Code Online (Sandbox Code Playgroud)

要求你在下面看到实际上包含的不仅仅是这个网格...因此所有额外的.

我不需要更新本地商店,也不想监视更改的URL.我只是希望能够根据需要从URL重新加载数据.

这是我目前用于初始加载网格(工作)的代码和我需要开始工作的刷新按钮.

require([ 'dojo/store/Observable' ,'dijit/Dialog', 'dijit/form/Select', 'dijit/form/MultiSelect', 'dijit/form/TextBox', 'dijit/layout/TabContainer', 'dijit/layout/ContentPane','dojo/request', 'dojo/request/xhr', 'dijit/form/ToggleButton', 'dijit/form/Button', 'dojo/parser', 'dojo/_base/declare', 'dgrid/Grid', 'dgrid/Selection', 'dgrid/Editor', 'dgrid/extensions/ColumnHider', 'dgrid/extensions/Pagination', 'dstore/RequestMemory', 'dijit/form/Select', 'dijit/registry','dojox/data/XmlStore', 'dojo/domReady!'], function (Observable, Dialog, Select, MultiSelect, TextBox, TabContainer, ContentPane, request, xhr, ToggleButton, Button, parser, declare, Grid, Selection, Editor, ColumnHider, Pagination, RequestMemory, Select, registry, XmlStore) {


//workers dgrid
    var workersStore = new RequestMemory({ target: '/autoAssign/getWorkers.aa?TASKTYPE=transport&INACTIVE=FALSE' });        
    var workerGrid = new (declare([ Grid, Selection, Pagination, Editor, ColumnHider ]))({
        collection: workersStore,
        className: 'dgrid-autoheight',
        id: …
Run Code Online (Sandbox Code Playgroud)

javascript dojo store dgrid dstore

3
推荐指数
1
解决办法
2570
查看次数

Dgrid 0.4和dstore:更新UI中的行而不放置请求

在Dgrid 0.3.16我使用的是Observable商店,当我在商店中的数据发生变化时,我调用了商店通知功能.(不是'put',因为我只需要一个UI更新,这是一个特定的情况)

store.notify(object, existingId);
Run Code Online (Sandbox Code Playgroud)

我现在已将Dgrid升级到版本0.4,我使用'dstore'作为商店.商店是这样创建的:

        var store = new declare([ Rest, SimpleQuery, Trackable, Cache, TreeStore ])(lang.mixin({
            target:"/ac/api?fetchview",
            idProperty:"$uniqueid", 
            useRangeHeaders: true
        }, config));

        store.getRootCollection = function (parent, options) {
            return this.root.filter({parent: parent.$position},options);
        };

        store.getChildren = function (parent, options) {
            return this.root.filter({parent: parent.$position},options);
        };

        store.mayHaveChildren = function (item) {
            return item.$iscategory;
        };

        this.collection = store;
Run Code Online (Sandbox Code Playgroud)

如何更改一行而不调用"put"时如何通知商店?我需要dGrid重新渲染行.

dojo dgrid dstore

1
推荐指数
1
解决办法
883
查看次数

Dojo dGrid/dStore实时更新

我一直试图实时获取我的dgrid/dstore网格.正如我所理解的那样,函数'Observable'已被弃用,而且它也不适用于我.

我试图通过Interval计时器更新网格,然后整个网格被擦除并重新加载.如何更新整个网格'内联'而不删除,并显示'加载数据'?

这是我的基本代码:

var timer = setInterval(function() {
  store.invalidate(); // Invalidate the cache
  store.fetch(); // Perform a new request for all items
  grid.refresh(); 
}, 500);
Run Code Online (Sandbox Code Playgroud)

javascript dojo json dgrid dstore

0
推荐指数
1
解决办法
1500
查看次数

标签 统计

dgrid ×4

dojo ×4

dstore ×4

javascript ×3

json ×1

store ×1

websocket ×1