Database DOJO增强型DataGrid-更新数据库
有没有人有一个如何使用DOJO Enhanced DataGrid中编辑的信息更新数据库表的工作示例?我有一个使用dojo.data.ItemFileWriteStore的postgresql数据库后端,它使用EchosJSON_编码(…)Database DOJO增强型DataGrid-更新数据库,database,datagrid,dojo,Database,Datagrid,Dojo,有没有人有一个如何使用DOJO Enhanced DataGrid中编辑的信息更新数据库表的工作示例?我有一个使用dojo.data.ItemFileWriteStore的postgresql数据库后端,它使用EchosJSON_编码(…) require(“dojox.grid.EnhancedGrid”); require(“dojo.data.ItemFileWriteStore”); require(“dojox.grid.enhanced.plugins.Pagination”);
require(“dojox.grid.EnhancedGrid”);
require(“dojo.data.ItemFileWriteStore”);
require(“dojox.grid.enhanced.plugins.Pagination”);
require(“dojox.grid.enhanced.plugins.Filter”);
dojo.addOnLoad(函数(){
//本例的测试数据存储:
var jsonStore=new dojo.data.ItemFileWriteStore({
url:'querys/catalog_qry.php'
});
//设置布局结构:
变量gridLayout=[{
字段:“名称链接”,
宽度:“30px”
},{
字段:“名称”,
名称:'说明',
可编辑:“true”,
宽度:“自动”
},{
字段:“拥有的数量”,
名称:“数量”,
宽度:“150px”
},{
字段:“平均单价”,
名称:“平均单价($)”,
宽度:“150px”
},{
字段:'类别',
名称:'类别',
宽度:“150px”,
可编辑:“true”,
类型:dojox.grid.cells.Select,
选项:['CFE','GFE','Other']
}];
//插件
变量插件={
分页:正确,
过滤器:真
};
//创建新网格:
var grid1=new dojox.grid.EnhancedGrid({
id:'网格',
查询:{name:'*'},
门店:jsonStore,
结构:网格布局,
插件:插件,
列重新排序:对,
escapeHTMLInData:false
},document.createElement('div');
//将新网格附加到div“grid”:
dojo.byId(“grid”).appendChild(grid1.domNode);
//调用startup以渲染网格:
grid1.startup();
});
用于ItemFileWriteStore。在页面底部还有一个标签。只需调整您的店铺即可。\u saveCustom:
但是JsonRestStore对于这类工作可能更有用
<head>
<script type="text/javascript">
dojo.require("dojox.grid.EnhancedGrid");
dojo.require("dojo.data.ItemFileWriteStore");
dojo.require("dojox.grid.enhanced.plugins.Pagination");
dojo.require("dojox.grid.enhanced.plugins.Filter");
dojo.addOnLoad(function() {
// our test data store for this example:
var jsonStore = new dojo.data.ItemFileWriteStore({
url: 'queries/catalog_qry.php'
});
// set the layout structure:
var gridLayout = [{
field: 'name_link',
width: '30px'
},{
field: 'name',
name: 'Description',
editable: 'true',
width: 'auto'
},{
field: 'quantity_owned',
name: 'Quantity',
width: '150px'
},{
field: 'avg_unit_price',
name: 'AVG Unit Price ($)',
width: '150px'
},{
field: 'category',
name: 'Category',
width: '150px',
editable: 'true',
type: dojox.grid.cells.Select,
options: ['CFE', 'GFE', 'Other']
}];
//plugins
var plugins = {
pagination: true,
filter: true
};
// create a new grid:
var grid1 = new dojox.grid.EnhancedGrid({
id: 'grid',
query: { name: '*' },
store: jsonStore,
structure: gridLayout,
plugins: plugins,
columnReordering: true,
escapeHTMLInData: false
},document.createElement('div'));
// append the new grid to the div "grid":
dojo.byId("grid").appendChild(grid1.domNode);
// Call startup, in order to render the grid:
grid1.startup();
});
</script>
</head>
<body class="claro"><div id="grid" style="width: 100%; height: 100%;"></div></body>
geoStore2._saveCustom = function(saveComplete, saveFailed) {
var changeSet = geoStore2._pending;
var changes = {};
changes.modified = [];
for (var i in changeSet._modifiedItems) {
var item = null;
if (geoStore2._itemsByIdentity) {
item = geoStore2._itemsByIdentity[i];
} else {
item = geoStore2._arrayOfAllItems[i];
}
changes.modified.push(itemToJS(geoStore2, item));
}
//
// send dojo.toJson(changes.modified) - Object to the server here
//
saveComplete();
};