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

YUI 2.8.2 datatable sorts old value after a client side button click action is done

本文关键字:排序 操作 数据表 客户端 按钮 YUI 单击      更新时间:2023-09-26

我正在使用 YUI 数据表 2.8.2。我需要单击删除按钮并发出ajax请求,成功响应后,单击的删除按钮应替换为 "已删除">文本。但是当我对任何列进行排序时,"已删除"文本会消失,因为旧数据被排序。默认情况下,所有按钮文本都应为"删除? 有什么帮助吗??

裁判:

// 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/

原因是当您对表进行排序时,它会重新呈现自身。当有人单击按钮时,它不会更改任何状态(即有关基础数据的任何内容(,您只是更改单元格的内部 HTML。 重新呈现时,基础数据将覆盖现有内容。

因此,要执行所需的操作,您需要为"是否已删除"数据创建一个字段,并在有人单击按钮时更新其值。 然后,该列的呈现函数将查看"是否已删除"值,并根据值显示"删除"或"已删除"。

像这样的东西: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 今年被停用了。