我有一个 javascript 数组,用作可编辑 YUI 数据表中的数据源:
var data = [
{ Col1: "one", Col2: 1 },
{ Col1: "two", Col2: 2 },
{ Col1: "three", Col2: 3 },
{ Col1: "four", Col2: 4 }
];
var customFormatter = function (elLiner, oRecord, oColumn, oData) {
elLiner.innerHTML = "Click me";
$(elLiner).click(function () {
var rsvalue = oRecord.getData("Col1");
var datavalue = data[oRecord.getCount()].Col1;;
alert("rs:" + rsvalue + ", data:" + datavalue);
});
};
var coldefs = [
{ key: "Col1", editor: new YAHOO.widget.TextboxCellEditor() },
{ key: "Col2" },
{ key: "Col3", formatter: customFormatter }
];
var datasource = new YAHOO.util.DataSource(data);
datasource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
datasource.responseSchema = { fields: [ "Col1", "Col2" ] };
var datatable = new YAHOO.widget.DataTable("mytable", coldefs, datasource);
datatable.subscribe("cellClickEvent", datatable.onEventShowCellEditor);
当我更改可编辑单元格中的值时,我看到数据表的 Record 使用新值更新,但底层data
数组没有。当用户完成数据编辑后,我想使用这个 javascript 数组(或另一个这种形状),我需要在其中进行一些后处理并将其发送到服务器。在一般良好的 YUI 示例中,我没有看到他们尝试将数据表中所做的更改与基础数据源相协调。有这样的例子吗?我将更改推回data
阵列的最佳方式是什么?
这是我的小测试的 jsfiddle:http: //jsfiddle.net/cfarmerga/uArKs/1/
我应该只捕获editorSaveEvent
DataTable 的 s 并遍历记录集并更新我的 javascript 数组吗?