如何通过确认在slickgrid的每一行上创建删除按钮?

时间:2013-01-24 13:51:17

标签: javascript jquery slickgrid

正如标题所说,我该怎么办?,我正在使用jiri创建的这个按钮:

How do i create a delete button on every row using the SlickGrid plugin?

当我在函数内添加if(确认(msg))时,它重复了msg ALOT 也许是因为我刷新-ajax表每次修改。

问我是否需要更多信息,我仍然是堆栈溢出中的noob:P (如果有某种方法“杀死”这个功能)

这里是按钮,iam使用(链接)我添加了idBorrada来检查id已被删除,并且不要尝试删除它两次,这里也是确认,但是当我触摸取消它再次询问我。 / p>

$('.del').live('click', function(){ var me = $(this), id = me.attr('id'); //assuming you have used a dataView to create your grid //also assuming that its variable name is called 'dataView' //use the following code to get the item to be deleted from it if(idBorrada != id && confirm("¿Seguro desea eleminarlo?")){ dataView.deleteItem(id); Wicket.Ajax.ajax({"u":"${url}","c":"${gridId}","ep":{'borrar':JSON.stringify(id, null, 2)}}); //This is possible because in the formatter we have assigned the row id itself as the button id; //now assuming your grid is called 'grid' //TODO grid.invalidate(); idBorrada= id; } else{ }; });

然后我再次调用整个函数。 希望有所帮助,抱歉语法不是我的母语

1 个答案:

答案 0 :(得分:3)

请按照以下步骤操作

  1. 为列对象的每一行添加删除链接,如下所示:

    <lang=javascript var columns = 
        { id: "Type", name: "Application Type", field: "ApplicationType", width: 100, cssClass: "cell-title", editor: Slick.Editors.Text, validator: requiredFieldValidator, sortable: true },
        { id: "delete", name: "Action", width: 40, cssClass: "cell-title", formatter: Slick.Formatters.Link }
    ];
    



  2. 在slick.formatters.js中添加链接格式化程序,如下所示,

    "Formatters": {
        "PercentComplete": PercentCompleteFormatter,
        "YesNo": YesNoFormatter,
        "Link": LinkFormatter
        }
    
    function LinkFormatter(row, cell, value, columnDef, dataContext) {
       return "<a style='color:#4996D0; text-decoration:none;cursor:pointer' onclick='DeleteData(" + dataContext.Id + ", " + row + ")'>Delete</a>";
    }
    
  3. 在javascript中添加以下删除功能

  4.     function DeleteData(id, rowId) {
        var result = confirm("Are you sure you want to permenantly delete this record!");
        if (result == true) {
            if (id) {
                $.ajax({
                    type: "POST",
                    url: "DeleteURL",
                    data: { id: id },
                    dataType: "text",
                    success: function () {
                    },
                    error: function () {
                    }
                });
            }
            dataView.deleteItem(id);
            dataView.refresh();
        }
    }