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

标签 javascript yui yahoo yahoo-api yui-datatable

我正在使用 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/

最佳答案

原因是当您对表格进行排序时,它会重新呈现自身。当有人单击该按钮时,它不会更改任何状态(即有关基础数据的任何内容),您只是更改单元格的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 今年已停产。

关于javascript - YUI 2.8.2 数据表在客户端按钮单击操作完成后对旧值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27546206/

相关文章:

html - 悬停时如何更改表数据单元背景颜色和数据单元内的链接文本

api - 当雅虎历史报价每天更新时

javascript - 集群环境中的颗粒缩小和合并

跨浏览器的 CSS 流体网格

javascript - 使用 Rails 保持前端状态

javascript - 通过 JavaScript 获取图像高度

html - 找不到 Yahoo Media Player 又名 Yahoo Web Player 脚本

Android 如何获取雅虎联系人

javascript - Selenium e2e 测试,更具体一些

javascript - 将服务值直接调用到指令中