DOJO Datagrid 通过按钮删除行
Posted
技术标签:
【中文标题】DOJO Datagrid 通过按钮删除行【英文标题】:DOJO Datagrid remove row via button 【发布时间】:2012-10-19 17:11:23 【问题描述】:我有一个 DOJO Datagrid 正在运行。它基于 itemFileWriteStore。
通过格式化程序功能,我添加了一个包含 OnClick 功能的按钮
-
获取属性“work_id”(在商店中)
进行 Ajax 调用以删除条目
将其从存储中移除并更新网格
这是代码:
//BUTTON-FORMATTER
function buttonFormatterRemove()
var w = new Button(
label: "Löschen",
iconClass: "dijitEditorIcon deleteIcon",
showLabel: false,
onClick: function()
console.log(this);
if (confirm("Datensatz wirklich löschen?"))
var item = grid.selection.getSelected();
var work_id = grid.store.getValue(item[0], "work_id");
//alert(work_id);
//FIRE REQUEST
request.post("<?php echo site_url('work/delete'); ?>/"+work_id,
).then(function(text)
if(text == 1)
console.log("Entry with ID"+work_id+" deleted!")
workStore.deleteItem(item[0]);
grid.startup();
else alert("Es ist ein Fehler aufgetreten");
);
);
w._destroyOnRemove=true;
return w;
到目前为止一切都很好......它有效!但只有当我之前点击进入数据网格时。我点击的地方无关紧要。
如果我刷新页面并直接单击按钮,它会抛出:
Uncaught Error: dojo.data.ItemFileWriteStore: Invalid item argument.
有谁知道如何获取特定行中 work_id 的句柄?
提前感谢您! AFX
【问题讨论】:
【参考方案1】:我自己解决了这个问题:
我意识到格式化程序有可选参数:
//BUTTON-FORMATTER
function buttonFormatterRemove(col, rowIndex)
通过这些参数,我可以掌握该行:
var rowdata = this.grid.getItem(rowIndex);
var work_id = rowdata['work_id'];
这篇博文对我帮助很大:http://documentumcookbook.wordpress.com/2010/08/06/dojo-datagrid-combining-field-values-in-formatter/
还是谢谢!
【讨论】:
以上是关于DOJO Datagrid 通过按钮删除行的主要内容,如果未能解决你的问题,请参考以下文章