Dojo 将dgrid放入TabContainer中的ContentPane中
我一直试图在TabContainer中的ContentPane(通过编程创建)中放置网格,但到目前为止我没有成功。如您所见,我尝试使用ContentPane的content属性设置网格,但没有成功。这是我的密码,谢谢Dojo 将dgrid放入TabContainer中的ContentPane中,dojo,dgrid,Dojo,Dgrid,我一直试图在TabContainer中的ContentPane(通过编程创建)中放置网格,但到目前为止我没有成功。如您所见,我尝试使用ContentPane的content属性设置网格,但没有成功。这是我的密码,谢谢 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body class = "claro"> <link rel=
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body class = "claro">
<link rel="stylesheet"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.11.2/dijit/themes/claro/claro.css" />
<!-- load Dojo -->
<script>
dojoConfig = {
parseOnLoad : true
}
</script>
<script src="/xampp/dojo/dojo/dojo.js" data-dojo-config="async:true, parseOnLoad:true, locale:'en'"></script>
<div style="width: 350px; height: 290px">
<div id="tc1-prog"></div>
</div>
<script>
require(["dojo/_base/declare", "dijit/layout/TabContainer", "dijit/layout/ContentPane", "dgrid/OnDemandGrid", "dgrid/extensions/DijitRegistry", "dojo/domReady!"], function(declare, TabContainer, ContentPane, Grid, DijitRegistry) {
var tc = new TabContainer({
style : "height: 100%; width: 100%;"
}, "tc1-prog");
var cp1 = new ContentPane({
title : "Food",
content : "We offer amazing food"
});
tc.addChild(cp1);
var cp2 = new ContentPane({
title : "Drinks",
content : "We are known for our drinks."
});
tc.addChild(cp2);
var data = [{
first : 'Bob',
last : 'Barker',
age : 89
}, {
first : 'Vanna',
last : 'White',
age : 55
}, {
first : 'Pat',
last : 'Sajak',
age : 65
}];
var grid = new Grid({
columns : {
first : 'First Name',
last : 'Last Name',
age : 'Age'
}
}, 'grid');
grid.renderArray(data);
grid.startup();
var cp3 = new ContentPane({
title : "Grid",
content : grid
});
tc.addChild(cp3);
tc.startup();
});
</script>
</body>
dojoConfig={
parseOnLoad:true
}
需要([“dojo/_base/declare”、“dijit/layout/TabContainer”、“dijit/layout/ContentPane”、“dgrid/OnDemandGrid”、“dgrid/extensions/DijitRegistry”、“dojo/domReady!”),函数(declare、TabContainer、ContentPane、Grid、DijitRegistry){
var tc=新标签容器({
样式:“高度:100%;宽度:100%;”
}“tc1项目”;
var cp1=新内容窗格({
标题:“食物”,
内容:“我们提供令人惊奇的食物”
});
tc.addChild(cp1);
var cp2=新内容窗格({
标题:“饮料”,
内容:“我们以饮料闻名。”
});
tc.addChild(cp2);
风险值数据=[{
第一个:'鲍勃',
最后一句:“巴克”,
年龄:89
}, {
第一个:“Vanna”,
最后一句:“白色”,
年龄:55
}, {
第一个:“帕特”,
最后一句:“Sajak”,
年龄:65
}];
var grid=新网格({
栏目:{
第一个:'名字',
last:'姓',
年龄:“年龄”
}
}“网格”);
网格渲染(数据);
grid.startup();
var cp3=新内容窗格({
标题:“网格”,
内容:网格
});
tc.addChild(cp3);
tc.startup();
});
dgrid
不是dojo
api的一部分。您需要添加对dgrid
脚本的引用才能创建dgrid网格。我刚刚在这里嵌入了解决方案,没有问题:
但是您应该使用dojo/store/Memory
创建数据存储,然后使用grid.set(“store”,yourDatastore)在dgrid上呈现数据
而不是dgrid.renderArray(store)
,因此有了内存,您就可以进行筛选,在store上使用查询和搜索,还可以在dgrid中自动渲染结果
需要({
套餐:[
{
名称:“dgrid”,
位置:“//cdn.rawgit.com/SitePen/dgrid/v0.3.16”
},
{
名称:“xstyle”,
位置:“//cdn.rawgit.com/krizyp/xstyle/v0.2.1”
},
{
名称:“放置选择器”,
位置:“//cdn.rawgit.com/krizyp/put selector/v0.3.5”
}
]
},[“dojo/_base/declare”,
“dijit/layout/TabContainer”,
“dijit/layout/ContentPane”,
“dgrid/OnDemandGrid”,
“dgrid/extensions/DijitRegistry”,
“dojo/store/Memory”,
“dojo/domReady!”],函数(声明、TabContainer、ContentPane、网格、DijitRegistry、内存){
var tc=新标签容器({
样式:“高度:100%;宽度:100%;”
}“tc1项目”;
var cp1=新内容窗格({
标题:“食物”,
内容:“我们提供令人惊奇的食物”
});
tc.addChild(cp1);
var cp2=新内容窗格({
标题:“饮料”,
内容:“我们以饮料闻名。”
});
tc.addChild(cp2);
风险值数据=[{
第一个:'鲍勃',
最后一句:“巴克”,
年龄:89
}, {
第一个:“Vanna”,
最后一句:“白色”,
年龄:55
}, {
第一个:“帕特”,
最后一句:“Sajak”,
年龄:65
}];
var grid=新网格({
栏目:{
第一个:'名字',
last:'姓',
年龄:“年龄”
}
}“网格”);
//创建内存存储
存储=新内存({data:data});
//用数据存储填充dgrid
网格集(“存储”,存储);
grid.startup();
var cp3=新内容窗格({
标题:“网格”,
内容:网格
});
tc.addChild(cp3);
tc.startup();
});代码>
我已经将dgrid放在dojo文件夹中,并且引用没有错误。dgrid的配置如何,您是否也添加了它。复制到文件夹/web项目是不够的。谢谢@bRIMOsBor!我不知道为什么我在控制台中没有看到任何错误,但是您的代码非常复杂nice@Naci我添加了一些建议(内存存储),请查看我的答案,如果它有助于将其标记为已解决,谢谢