YUI 2.8.2数据表在客户端按钮单击操作完成后对旧值进行排序

时间:2014-12-18 12:04:34

标签: javascript yui yahoo yahoo-api yui-datatable

我正在使用YUI数据表2.8.2。我需要单击删除按钮并且ajax请求成功,在成功响应之后,应该将被单击的删除按钮替换为            “已删除” text.But当我对任何列进行排序时,“已删除”文本消失,因为旧数据已排序。 默认情况下,所有按钮文本都应为“删除?”。            任何帮助?

参考:

// Create a new YUI instance and populate it with the required modules.

YUI()。use('node',function(Y){Y.one('body')。addClass('yui-skin-sam');});

http://jsfiddle.net/ejx3zex3/1/

1 个答案:

答案 0 :(得分:1)

原因是当您对表进行排序时,它会重新呈现自己。当有人点击按钮时,它不会改变任何状态(即任何有关底层数据的东西),你只是改变了单元格的innerHTML。重新渲染发生时,现有内容将被基础数据覆盖。

为了做你想做的事,你需要创建一个字段,以便删除'数据,并在有人点击按钮时更新它的值。然后,该列的渲染功能将查看'这是否已删除'价值并显示'删除'或者'已删除'取决于价值。

像这样:http://jsfiddle.net/ejx3zex3/2/

主要是添加删除的键/字段:

var myColumnDefs = [{
        key: "deleted",
        formatter: function (el, oRecord, oColumn, oData) {
            el.innerHTML = "<button type=\"button\" class=\"yui-dt-button\">Delete" + (oData ? "d" : "") + "</button>";
        },
        "label": "Delete?"
    }, 

它仍然不理想,但希望足以让你继续前进。

顺便提一下,我假设您知道YUI2已经被弃用了几年,今年YUI3被淘汰了。