获取ExtjS grid 单元格cell的值

时间:2022-08-24 11:38:56
  1017人阅读  评论(0)  收藏  举报

  1. sm:new Ext.grid.CellSelectionModel();     

则表格的选择模式为单元格选择模式。当单击时将选中对应的某一个单元格,而不是默认的选择某一行。选择方式如下 
Java代码   获取ExtjS grid 单元格cell的值
  1. var cell = grid.getSelectionNode().getSelectedCell();     

得到的cell记录了当前选择的行(cell[0])以及列(cell[1]).可以通过一下语句得到该单元格数据 
Java代码   获取ExtjS grid 单元格cell的值
  1. var colname = grid.getColumnModel().getDataIndex(cell[1]);  //获取列名      
  2. var celldata = grid.getStore().getAt(cell[0]).get(colname); //获取数据  

getStore():获取表格的数据集 
getAt():获取该数据集cell[0]行 
get():获取该行colname的数据 
为表格增加链接 
有时我们需要为表格中的某一列添加一个链接。可以利用renderer配置属性为该列添加html 
如下:{id:'3',header:'名称',dataIndex:'name',renderer:DomUrl}, 
定义DomUrl方法 



Js代码 
function DomUrl(value){    
return "<a href=>"+value+"</a>";    
}   
function DomUrl(value){ return "<a href=>"+value+"</a>"; } 

如果表格内的数据是一个链接如:www.sina.com这样写法自然没有问题,但是大多数时候我们在表格中不会直接写一个链接,如果又需要根据单元格内容动态为链接添加几个参数。那这种写法就几乎没有什么用了。因为这个属性是在表格初始化的时候定义好的,而且表格初始化之后这个属性无法改变,也就是只读属性。 


处理方法如下: 
定义一个全局变量,初始值为0;DomUrl函数如下 

Js代码 
function DomUrl(value){    
var row = grid.getSelectionModel().selectRow(startrow);//选中当前行    
var rownum = grid.getSelectionModel().getSelected();//获取当前行    
startrow ++;    
var strurl = "abc.jsp?id=" + rownum.get('id');//获取当前选中行的值,并组织链接字符串    
return "<a href='"+strurl+"'>"+value+"</a>";    
}   
function DomUrl(value){ var row = grid.getSelectionModel().selectRow(startrow);//选中当前行 var rownum = grid.getSelectionModel().getSelected();//获取当前行 startrow ++; var strurl = "abc.jsp?id=" + rownum.get('id');//获取当前选中行的值,并组织链接字符串 return "<a href='"+strurl+"'>"+value+"</a>"; } 

不过不要忘记在下次提交的时候将startrow赋值为0。