Gird自動選中特定的行

來源:互聯網
上載者:User

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介面。

本文出自 “專註J2EE系列規範下的..” 部落格,轉載請與作者聯絡!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.