使用 DOJO 开发定制小部件,第 2 部分: 使用通用的网格处理程序生成 DOJO DataGrid 组件
2010-05-18 00:00:00 来源:WEB开发网一旦成功加载 JSON 文件后,createGrid 方法就调用 _gridHeadersURLDef 方法。 _gridHeadersURLDef 方法从 JSON 文件中读取布局信息。它还会检查布局中的每一列是否有 formatter 属性。如果有,就将相应的 formatter 方法应用到正确的范围内。
然后,_gridHeadersURLDef() 方法将调用 drawDataGrid() 方法。
清单 2. _gridHeadersURLDef( ) 方法。
清单 2. _gridHeadersURLDef( ) 方法
_gridHeadersURLDef: function(response,gridDisplayDivId, onCellClickMethodName){
this.gridSearchResultDef=eval(response).layout;
for(var i=0; i<this.gridSearchResultDef.length;i++){
rowheaders = this.gridSearchResultDef[i];
for(var j=0; j<rowheaders.length;j++)
{
var callback=rowheaders[j].formatter;
if(callback){
rowheaders[j].formatter=dojo.hitch(this.thisVar,callback);
console.debug(callback);
}
var
displayName=this.iwidget_messages[rowheaders[j].name];
rowheaders[j].name=displayName;
}
}
this._drawDataGrid(this.gridSearchResultDef, gridDisplayDivId,
onCellClickMethodName);
}
drawDataGrid 方法实例化 DataGrid 小部件并调用 DataGrid 的启动方法。清单 3 中的代码片段生成 DataGrid 小部件,并将 columnReordering、 clientSort 和 autoHeight 设置为 true。网格数据来自于定制数据存储 DojoItemFileWriteStore。DojoItemFileWriteStore 存储覆盖了 ItemFileWriteStore 中的 _getItemsFromLoadedData() 方法,以读取显示分页信息所需的属性(totalRecords、startRecordIndex 和 endRecordIndex)。
更多精彩
赞助商链接