通过JS修改Gridpanel中的前台显示(Extjs)

昨晚和刚才一直在做这样一个需求:

页面上点击一个按钮,然后弹出一个窗口。在窗口中点击一个按钮,窗口关闭,并刷新父页面的gridpanel中的特定值。。。

关于这个取到gridpanel的事,我可花了大笔的时间,原因我稍后再写,先把对gridpanel的操作写出来再说:


1.遍历gridpanel中的元素:

var grid = .....;
var store = grid.store;
var rowCount = store.getCount(); //记录数
var cm = grid.getColumnModel();
var colCount = cm.getColumnCount(); //列数
var view = grid.getView();
for(var i=0;i<rowCount;i++){
  for(var j=0;j<colCount;j++){
    var cell = view.getCell(i,j);
    alert(cell.innerHTML);//第i行j列的数据
  }
}


2.取得某cell的值

grid.getStore().getAt(i).get(colname)


3.对某cell进行修改(只是前台修改,而不是刷新页面哈)

<script type="text/javascript">
////拿到父页面中的gridpanel之后:
var rowCount = vehiclePassInfoGrid.getStore().getCount(); //记录数
var colname = vehiclePassInfoGrid.getColumnModel().getDataIndex(13);
for(var i=0;i<rowCount;i++)
{
if(vehiclePassInfoGrid.getStore().getAt(i).get(colname) == "未处理")
{
vehiclePassInfoGrid.getStore().getAt(i).set(colname, '<div><font color="red">已处理</font></div>');
}
}
alert('处理成功');
self.close();
    </script>


搞定。。。哦耶。。。


ps:

1.得到行对象

var mygrid = Ext.GridPanel({....});
var total = mygrid.getStrore().getCount();//数据行数
for(var i=0;i<total;i++){
  alert(grid.getView().getRow(i))//每行对象
}






posted on 2011-10-26 10:18  java课程设计例子  阅读(198)  评论(0编辑  收藏  举报