我正在使用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的变量,但是这个变量只包含原始数据源而没有用户所做的更改。 如何检索数据源的更新版本?
答案 0 :(得分:1)
DataSource仅检索数据,但不保留对检索到的数据的引用。一旦它将检索到的数据传递给任何请求的数据,在本例中为DataTable,它就会忘记它。然后,DataTable将数据保存在RecordSet集合中,该集合由各个Record实例组成,您可以在其中按字段名称获取值。出于某些有趣的原因,Record和RecordSet的API文档都不在DataTable下。我知道这两个人的文档在那里的某个地方,但他们不知何故被归入其他组件。
无论如何,在DataTable中,你有方法getRecord()
,它接受一个索引。您可以遍历它,直到它返回null或undefined。否则,我相信你可以做getRecordset().getLength()
并使用它来迭代for循环。然后,在每个记录实例上,方法getData()
获取列键并返回值。
有关更多信息,请阅读DataTable标题中引用的两篇“使用DataTable小部件”文章。