Ext中的Grid清單僅僅提供了按Index号進行選中行,并不能按特定的字段名比對進行行的選中,即沒有類似Grid.selectRowByColName的方法提供,是以需要自己進行Index數組的拼裝,然後再利用selectRows進行勾選。
提供如下代碼案例:
版本一:
//need select
resIdS = getResourcesByOrderIdOrPdtId.synExecute({pdt_id:pdtId});
resIdS = resIdS.dataSetResult[0].data;
//datasource
var re = resDataSet.getResultData().dataSetResult[0].data;
//container
var arr=new Array();
//match
for (var t = 0;t<re.length;t++){
var pdtResId=re[t]["pdt_resource_id"];
for(var i= 0;i<resIdS.length;i++){
if(pdtResId == resIdS[i]["pdt_resource_id"]){
arr[i] = t;
}
}
}
//select
resGrid.selectRows(arr);
版本二:
/**
* 1.select directly
*/
thisComp.store.on('load',function(store,records,options)
{
var record = MainWin.pdtInfo.getSelectionData();
pdtId = record.get("pdt_id");
resIdS = getResourcesByOrderIdOrPdtId.synExecute(
{
pdt_id:pdtId
}
);
resIdS = resIdS.dataSetResult[0].data;
var arr=new Array();
for(var i= 0;i<resIdS.length;i++)
var index = resGrid.store.findExact("pdt_resource_id",resIdS[i]["pdt_resource_id"]);
if(index >= 0 )
{
arr.push(index);
}
resGrid.selectRows(arr);
}
);
定制版:
根據恒生已封裝的代碼進行把需要選的維護到在控件中的公共數組,有控件自動進行選中操作,代碼如下:
* 2.push to common select data
var pagingBar = thisComp.pageBar;
pagingBar.on("change",function(bar,data,o)
var activPage = bar.getPageData().activePage;
//dataset
var pageDataSet = resDataSet.getResultData().dataSetResult[0].data;
//need select
var rec = MainWin.pdtInfo.getSelectionData();
pdtId = rec.get("pdt_id");
needSelectIdS = getResourcesByOrderIdOrPdtId.synExecute(
needSelectIdS = needSelectIdS.dataSetResult[0].data;
var grid = bar.grid;
var allData = grid.getAllData();
var record = null;
for(var i=0;i<allData.length;i++)
record = allData[i];
var ds_id=record.get("pdt_resource_id");
for(var t= 0;t<needSelectIdS.length;t++)
if(ds_id == needSelectIdS[t]["pdt_resource_id"])
{
grid.selectedDatas.push(
{
page:activPage,record:record
}
);
}
//控件自定義選中操作函數
pagingBar.updateInfo();
對于定制版,其實該HsPagingToolBar控件中就應該設定對于公共數組的接口,讓引用地方可以進行設定我們需要的選中項,需要研發中心提供API接口。
本文轉自danni505 51CTO部落格,原文連結:http://blog.51cto.com/danni505/697054,如需轉載請自行聯系原作者