我正在使用DGRID来显示数据.我知道我可以使用store.query查询商店中的记录,并使用store.put等将记录插入商店,但是我想对商店进行更新.如何更新商店中的记录?
我更喜欢更新内存存储,然后将其推回到数据库中,而不是先更新数据库,然后刷新内存存储.
数据
var data = [
{ id:"1", idType: "Passport", idNumber: "12121545WWW" },
{ id:"2",idType: "Drivers Permit", idNumber: "11212154515 FF"},
{ id:"3",idType: "Electoral Identification", idNumber: "425123123121"}
];
Run Code Online (Sandbox Code Playgroud)
功能
添加数据
Store.put({id: enteredId, idNumber:enteredIdNumber,idType:enteredIdType})
Run Code Online (Sandbox Code Playgroud)
查询数据
Store.query({idType: enteredIdType})
Run Code Online (Sandbox Code Playgroud)
更新数据 - 我很困惑这是如何完成的
Store.update({idNumber:enteredIdNumber,idType:enteredIdType})
Run Code Online (Sandbox Code Playgroud) 好吧,我已经能够使它与DataGrid一起工作,但由于某种原因,Dgrid可能真的令人印象深刻,同时,真的很令人沮丧(许多人推荐它).到目前为止,我已经能够请求一定数量的数据(只有第一次调用,所以我的请求标头指定返回25项...),一旦我尝试向下滚动以获得更多项目(因此应该发送额外的请求) 什么都没发生.
基本上这是用jsonrest构建的商店:
define([
"dojo/store/Memory",
"dojo/store/JsonRest",
"dojo/store/Cache",
"dojo/store/Observable"
],
function(
Memory,
JsonRest,
Cache,
Observable
){
var contentMemoryStore = new Memory();
var contentJsonRestStore = new JsonRest({target: "http://dev.mpact.tv:30087/rest/contenus/"});
contentStore = new Cache(contentJsonRestStore, contentMemoryStore);
return new Observable(contentStore);
});
Run Code Online (Sandbox Code Playgroud)
然后,我将此商店传递给OnDemandGrid的属性.
我检查了这个人的例子:http://www.speich.net/articles/demos/jsonrest/dojo-demo-dgrid.php 我检查了dgrid(OnDemandList)的文档:https://github.com/SitePen/dgrid /维基/核心组件
添加了Request标头/ Response标头(但我认为它们是正确的):

服务器端代码(在perl中):
$r->headers_out->set('Content-Range', sprintf("items %d-%d/%d", $start, $start
+ $num_items - 1, $total));
Run Code Online (Sandbox Code Playgroud)
更新:
我用旧的jsonstore(dojox/data)进行了快速测试:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Statut des canaux générés par Gipsy</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> …Run Code Online (Sandbox Code Playgroud) 如何设置dGrid的特定行?
我有一些行的ID,我想要突出显示,但我无法弄清楚如何突出显示这些行.它是一个带有数千条记录的onDemandGrid,所以我不能只是循环遍历行并进行突出显示.
我已经尝试将一个renderCell方法应用于一个列,然后使用grid.row(data)来获取该行,但我不认为该单元已被连接到renderCell被调用的点.
renderCell = function( object, data, cell )
{
// style row
var row = squadronGrid.row( data );
console.log( row.element ); // shows as undefined!
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
我正在尝试制作一个可编辑的网格.我想为用户提供更多行,如果需要的话.我试过去他们的文档,但这并不明显.
还有什么grid.newRow()呢?
我一直试图实时获取我的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)