dgrid-无法将选择模式保持为“0”;“单一”;使用Dojo内存/对象存储作为存储时
我无法将selectionMode保持为“单一”或“扩展”。 当我使用dojo内存/ObjectStore作为存储时,只会发生多行选择dgrid-无法将选择模式保持为“0”;“单一”;使用Dojo内存/对象存储作为存储时,dojo,dgrid,Dojo,Dgrid,我无法将selectionMode保持为“单一”或“扩展”。 当我使用dojo内存/ObjectStore作为存储时,只会发生多行选择 require([ "dojo/_base/declare", "dojo/request", "dojo/data/ObjectStore", "dojo/store/Memory", "dgrid/OnDemandGrid", "dgrid/Keyboard", "dgrid/Selection
require([
"dojo/_base/declare",
"dojo/request",
"dojo/data/ObjectStore",
"dojo/store/Memory",
"dgrid/OnDemandGrid",
"dgrid/Keyboard",
"dgrid/Selection",
"dojo/DeferredList",
"dojo/domReady!"
],
function (declare, request, ObjectStore, Memory, OnDemandGrid, Keyboard, Selection, DeferredList) {
var ddstore;
claimDef = dojo.xhrGet({
url: "pageToGetData.aspx",
handleAs: "json",
load: function (res) {
// Resolve when content is received
ddstore = new Memory({ data: res });
}
});
var defs = new dojo.DeferredList([claimDef]);
defs.then(function (results) {
// Create a new constructor by mixing in the components
var CustomGrid = declare([OnDemandGrid, Keyboard, Selection]);
claimAccountsGrid = new CustomGrid({
columns: [
{ label: "Label1", field: "Field1" },
{ label: "Label2", field: "Field2" },
{ label: "Label3", field: "Field3" },
]
}, "claimAccountsGrid");
claimAccountsGrid.setStore(ddstore);
});
});
但是,当我对从该页面获得的相同数据进行硬编码时,我可以将默认的selectionMode设置为“extended”(扩展)
由于您没有显示实际数据,我无法100%确定,但如果您未能正确确保项目具有唯一标识符,就会发生这种情况(或者,如果标识符字段不是
id
,您忘记在内存存储上设置idProperty
,以通知它要查看的字段)
另请参见尝试此
ddstore=newobservable(新内存({data:res}))
为此,您需要将其作为dojo/store/Observable
来要求。我希望它对你有用祝你好运!。谢谢你的回复。但是,使用dojo/store/Observable也不起作用。在dgrid文件夹中有一个测试文件夹checkout。这个文件夹可能是您找到任何有用解决方案的示例。
require([
"dojo/_base/declare",
"dojo/request",
"dojo/data/ObjectStore",
"dojo/store/Memory",
"dgrid/OnDemandGrid",
"dgrid/Keyboard",
"dgrid/Selection",
"dojo/DeferredList",
"dojo/domReady!"
],
function (declare, request, ObjectStore, Memory, OnDemandGrid, Keyboard, Selection, DeferredList) {
pageNo = 1;
var ddstore;
claimDef = dojo.xhrGet({
url: "pageToGetData.aspx",
handleAs: "json",
load: function (res) {
// Resolve when content is received
ddstore = //new Memory({ data: res });
[
{ "Field1": "value1", "Field2": null, "Field3": "1" },
{ "Field1": "value2", "Field2": null, "Field3": "1"}
];
}
});
var defs = new dojo.DeferredList([claimDef]);
defs.then(function (results) {
// Create a new constructor by mixing in the components
var CustomGrid = declare([OnDemandGrid, Keyboard, Selection]);
claimAccountsGrid = new CustomGrid({
columns: [
{ label: "Label1", field: "Field1" },
{ label: "Label2", field: "Field2" },
{ label: "Label3", field: "Field3" },
]
}, "claimAccountsGrid");
//claimAccountsGrid.setStore(ddstore);
claimAccountsGrid.renderArray(ddstore);
});
});