backbase How to dynamically hide or display some columns

How to dynamically hide or display some columns (which is still keep its setting after refreshed it.)?

顯示和隱藏某些列可以通過顯示和隱藏相應的b:datagridheadcell來實現,例如:

 
  1. <b:button>  
  2.     Hide the 3rd column   
  3.     <s:event b:on="command">  
  4.         <s:task b:action="hide" b:target="id('datagrid1')/b:datagridhead/b:datagridrow/b:datagridheadcell[3]"/>        
  5.     s:event>  
  6. b:button>  
  7. <b:button>  
  8.     Show the 3rd column   
  9.     <s:event b:on="command">  
  10.         <s:task b:action="show" b:target="id('datagrid1')/b:datagridhead/b:datagridrow/b:datagridheadcell[3]"/>        
  11.     s:event>  
  12. b:button>  

 

 

B:listgridb:datagrid內置不支持狀態保存。如果要在整個頁面刷新之後保留住刷新之前的狀態,可以手動紀錄先前的狀態到cookie中,待頁面刷新的時候根據先前的狀態顯示或者隱藏某些列。上面的代碼可以作如下更改來實現此功能:

xml 代碼
 
  1.   
  2. <b:button>  
  3.     Hide the 3rd column   
  4.     <s:event b:on="command">  
  5.         <s:task b:action="hide" b:target="id('datagrid1')/b:datagridhead/b:datagridrow/b:datagridheadcell[3]"/>    
  6.         
  7.         <s:task b:action="setcookie" b:name="{'datagrid1-hidden-column',3}" b:value="true" b:days="100" />  
  8.     s:event>  
  9. b:button>  
  10. <b:button>  
  11.     Show the 3rd column   
  12.     <s:event b:on="command">  
  13.         <s:task b:action="show" b:target="id('datagrid1')/b:datagridhead/b:datagridrow/b:datagridheadcell[3]"/>    
  14.         
  15.         <s:task b:action="setcookie" b:name="{'datagrid1-hidden-column',3}" b:value="" b:days="100" />  
  16.     s:event>  
  17. b:button>  

 

相應地,在datagrid1construct事件中,檢測每一個列在cookie中相應的隱藏狀態來有選擇地隱藏列:

xml 代碼
 
  1.   
  2. <b:datagrid id="datagrid1"  … >  
  3.    <b:datagridhead>  
  4.       <b:datagridrow>  
  5.          <b:datagridheadcell />  
  6.          <b:datagridheadcell b:behavior="my-datagrid-headcell" b:datatype="text">Titleb:datagridheadcell>  
  7.          <b:datagridheadcell b:behavior="my-datagrid-headcell" b:datatype="radio">Directorb:datagridheadcell>  
  8.          <b:datagridheadcell b:behavior="my-datagrid-headcell" b:datatype="genre">Genreb:datagridheadcell>  
  9.          <b:datagridheadcell b:behavior="my-datagrid-headcell" b:datatype="checkbox">Languageb:datagridheadcell>  
  10.          <b:datagridheadcell b:behavior="my-datagrid-headcell" b:datatype="datepicker" b:sorttype="string">Premiereb:datagridheadcell>  
  11.       b:datagridrow>  
  12.    b:datagridhead>  
  13.    <b:datagridbody />  
  14.    <s:event b:on="construct">  
  15.     <s:super/>  
  16.     
  17.     <s:with b:target="b:datagridhead/b:datagridrow/b:datagridheadcell">  
  18.         <s:task b:action="hide" b:test="cookie(concat('datagrid1-hidden-column',position()))='true'"/>  
  19.     s:with>  
  20.     s:event>  
  21.       
  22. b:datagrid>  

 

xml 代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章