我正在使用 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'); });
最佳答案
原因是当您对表格进行排序时,它会重新呈现自身。当有人单击该按钮时,它不会更改任何状态(即有关基础数据的任何内容),您只是更改单元格的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/