在dojogrid中删除行(使用列中的按钮)时遇到问题

时间:2014-08-05 18:09:43

标签: datagrid dojo delete-row

我正在使用dojo EnhancedGrid来显示一些数据并处理“onRowClick”事件,以允许用户单击网格中的一行来查看有关此行的更多详细信息,如下所示。

dojo.connect(grid,“onRowClick”,grid,dojo.partial(displayDetailsForSelectedElement,type));

现在,我想允许用户通过在网格中的每一行的单独列中提供删除按钮来从网格中删除项目。该按钮的代码如下所示。

 function buttonFormatterRemove(col, rowIndex){
    var w = new dijit.form.Button({
        label: "Delete",    //label: '<img src="images/del.png" />',
        iconClass: "dijitIconDelete", //"dijitEditorIcon  dijitIconCut",
        showLabel: false,
        onClick: function() {
                console.log(this);
                //if (confirm("Are you sure you want to delete the assertion?")){
                    alert("Do I come here for delete...");

                    //var item = grid.selection.getSelected();
                    //var work_id = grid.store.getValue(item[0], "work_id");
                    var item = this.grid.getItem(rowIndex);
                    var id = item['id'];
                    alert("delete row with id = " + id);

                    //Send POST request to delete
                    require(["dojo/request"], function(request){
                        request.del(contextPath + "/rest/items/" + id)
                            .then(function(text){
                                    console.log("The server returned: ", text);
                                });
                    });      
                //}          
        }//function
    });
    w._destroyOnRemove=true;
    return w;
}

我遇到的问题是,当我点击一行的删除按钮时,虽然它确实进入onClick(),警告后的代码(“我来这里是为了删除......”);没有被调用。之后,它执行第一个alert(),它调用displayDetailsForSelectedElement()来处理'onRowClick'。

我不确定这个问题是否是由于当我点击删除按钮时触发了2个事件并且是否有解决方案来解决这个问题?任何帮助和建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以先调用dojo.stopEvent(e)来停止删除方法中的事件传播。