Gird自动选中特定的行

简介:

Ext中的Grid列表仅仅提供了按Index号进行选中行,并不能按特定的字段名匹配进行行的选中,即没有类似Grid.selectRowByColName的方法提供,因此需要自己进行Index数组的拼装,然后再利用selectRows进行勾选。

提供如下代码案例:

 版本一:

 
  1. //need select 
  2.        resIdS = getResourcesByOrderIdOrPdtId.synExecute({pdt_id:pdtId}); 
  3.        resIdS = resIdS.dataSetResult[0].data; 
  4.         
  5.        //datasource 
  6.        var re = resDataSet.getResultData().dataSetResult[0].data; 
  7.         
  8.        //container 
  9.        var arr=new Array(); 
  10.         
  11.        //match 
  12.        for (var t = 0;t<re.length;t++){ 
  13.             var pdtResId=re[t]["pdt_resource_id"]; 
  14.             for(var i= 0;i<resIdS.length;i++){ 
  15.                 if(pdtResId == resIdS[i]["pdt_resource_id"]){ 
  16.                    arr[i] = t; 
  17.                 } 
  18.             } 
  19.        } 
  20.         
  21.        //select 
  22.        resGrid.selectRows(arr); 

 版本二:

 
  1. /** 
  2. * 1.select directly 
  3. */ 
  4. thisComp.store.on('load',function(store,records,options) 
  5.   var record = MainWin.pdtInfo.getSelectionData(); 
  6.   pdtId = record.get("pdt_id"); 
  7.   resIdS = getResourcesByOrderIdOrPdtId.synExecute( 
  8.   { 
  9.     pdt_id:pdtId 
  10.   } 
  11.   ); 
  12.   resIdS = resIdS.dataSetResult[0].data; 
  13.   var arr=new Array(); 
  14.   for(var i= 0;i<resIdS.length;i++) 
  15.   { 
  16.     var index = resGrid.store.findExact("pdt_resource_id",resIdS[i]["pdt_resource_id"]); 
  17.     if(index >= 0 ) 
  18.     { 
  19.       arr.push(index); 
  20.     } 
  21.   } 
  22.   resGrid.selectRows(arr); 
  23. ); 

 

定制版:

根据恒生已封装的代码进行把需要选的维护到在控件中的公共数组,有控件自动进行选中操作,代码如下:

 

 
  1. /** 
  2. * 2.push to common select data 
  3. */ 
  4. var pagingBar = thisComp.pageBar; 
  5. pagingBar.on("change",function(bar,data,o) 
  6.    
  7.   var activPage =  bar.getPageData().activePage; 
  8.   //dataset 
  9.   var pageDataSet = resDataSet.getResultData().dataSetResult[0].data; 
  10.   //need select 
  11.   var rec = MainWin.pdtInfo.getSelectionData(); 
  12.   pdtId = rec.get("pdt_id"); 
  13.   needSelectIdS = getResourcesByOrderIdOrPdtId.synExecute( 
  14.   { 
  15.     pdt_id:pdtId 
  16.   } 
  17.   ); 
  18.   needSelectIdS = needSelectIdS.dataSetResult[0].data; 
  19.   var grid = bar.grid; 
  20.   var allData = grid.getAllData(); 
  21.   var record = null
  22.    
  23.   for(var i=0;i<allData.length;i++) 
  24.   { 
  25.     record = allData[i]; 
  26.     var ds_id=record.get("pdt_resource_id"); 
  27.     for(var t= 0;t<needSelectIdS.length;t++) 
  28.     { 
  29.       if(ds_id == needSelectIdS[t]["pdt_resource_id"]) 
  30.       { 
  31.         grid.selectedDatas.push( 
  32.         { 
  33.           page:activPage,record:record 
  34.         } 
  35.         ); 
  36.       } 
  37.     } 
  38.   } 
  39. //控件自定义选中操作函数
  40.   pagingBar.updateInfo(); 
  41. ); 

对于定制版,其实该HsPagingToolBar控件中就应该设置对于公共数组的接口,让引用地方可以进行设置我们需要的选中项,需要研发中心提供API接口。




     本文转自danni505 51CTO博客,原文链接:http://blog.51cto.com/danni505/697054,如需转载请自行联系原作者



相关文章
|
6月前
单选框设置默认选中
单选框设置默认选中
69 1
|
6月前
|
缓存 前端开发
禁用文字选中
禁用文字选中
48 0
|
开发者
jeDate日期控件的使用以及选中后点确定按钮关闭功能
jeDate日期控件的使用以及选中后点确定按钮关闭功能
156 0
html+css实战34-单选功能和默认选中
html+css实战34-单选功能和默认选中
121 0
html+css实战34-单选功能和默认选中
|
Android开发
不可取消的对话框
牙叔教程 简单易懂
133 0
|
存储
PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
473 0
PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
创建动态工具栏并设置工具栏按钮提示
1、创建对话框程序,导入8个图标资源。 2、在对话框头文件中声明变量,代码如下: CToolBar m_ToolBar; CImageList m_ImageList; CString  m_TipText;   3、在对话框中oninitdialg函数中创建工具栏,如下: //创建图像列表 m_ImageList.
964 0
自定义状态切换按钮
最近在做一个项目,一个界面的按钮UI给画成了这样(默认状态是蓝色的然后触摸后变成灰色的) UI效果 然后本着给低版本系统APP适配的职业素养(其实是不想画这种按钮),想让UI兄弟给将图标改成整个按钮效果的图片,可是。
971 0