0

我正在使用 YUI 2.8.2 中的数据表及其小部件来编辑数据源(YAHOO.example.Data.response),如下所示:

    this.bpDataSource = new YAHOO.util.DataSource(YAHOO.example.Data.response);
    response_datasource = this.bpDataSource;
    this.bpDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
    this.bpDataSource.responseSchema = {
        resultsList: "item_evaluacion",
        fields: [ ... ]
    };
    this.standardSelectDataTable = new YAHOO.widget.ScrollingDataTable("div_item",
        bpColumnas, this.bpDataSource, {height:"9em"} );

我想从此数据表中检索已编辑的数据并对其进行处理。我首先尝试了一个指向 this.bpDataSource 的变量,但这个变量只包含原始数据源,没有用户所做的更改。如何检索数据源的更新版本?

4

1 回答 1

1

DataSource 仅检索数据,但不保留对检索到的数据的引用。一旦它将检索到的数据传递给任何请求它的对象,在本例中为 DataTable,它就会忘记它。然后,DataTable 将数据保存在RecordSet集合中,该集合由各个 Record 实例组成,您可以在其中按字段名称获取值。出于一些有趣的原因,Record 和 RecordSet 的 API 文档都不在 DataTable 下。我知道这两个的文档在那里的某个地方,但他们不知何故被归档在其他一些组件下。

无论如何,在 DataTable 中,您有getRecord()一个采用索引的方法。您可以循环遍历它,直到它返回 null 或 undefined。否则,我相信您可以这样做getRecordset().getLength()并使用它来迭代 for 循环。然后,在每个记录实例上,方法getData()获取列键并返回值。

有关详细信息,请阅读 DataTable 标题中引用的两篇“使用 DataTable 小部件”文章。

于 2013-10-18T06:41:53.900 回答