这两天刚看extjs 刚搞定了extjs和servlet的数据交换 有碰到新问题
 在百度和google上查找的都不是很明白  网上等待求解! 如何写一个GridPanel 点击某一行的事件? 然后获得该行的值!
 我的JS文件如下。 应该在里面哪里加个事件?怎么加?
Ext.onReady(function(){
var store=new Ext.data.Store(
{ autoLoad:true,
  proxy:new Ext.data.HttpProxy({
   method : 'GET',
                url:'display.do'
                }
  ),
  reader:new Ext.data.JsonReader({})
}
);
var cm=new Ext.grid.ColumnModel([
{header:"id",dataIndex:"id"},
{header:"email",dataIndex:"email"},
{header:"姓名",dataIndex:"name"},
{header:"性别",dataIndex:"sex"},
{header:"年龄",dataIndex:"age"},
{header:"出生年月",dataIndex:"birth"}
]);
var grid = new Ext.grid.GridPanel({
title:"grid列表显示示例",
width:600,
height:300,
cm:cm,
store:store
});


grid.render(Ext.getBody());});

解决方案 »

  1.   

    在{header: "出生年月 ",dataIndex: "birth "},后面加一列
    {header: "操作",
    dataIndex: "birth ",
    renderer : function(val) {
    return '<a href="#" onclick="javascript:edit();">编辑</a>';}
    }
    然后,比如弹出窗口titlewindow
    edit= function() {
    var _rec = grid.getSelections()[0];
    var_win = new Ext.Window( {
    title :_rec.data.name
    })
    这样就可以获取姓名的值了
      

  2.   

    你可以监听grid选择模式的选中事件.grid.getSelectionModel().on('rowselect',function(sm,rowNo,record){
        alert(record.get("name"));
    })
      

  3.   

     listeners : {
    dblclick : function() {
    this.onDetail();
    }.createDelegate(this)
    } listeners : {
    dblclick : function() {
    this.onDetail();
    }.createDelegate(this)
    }
    可以在panel里面加这个属性listeners ,在里面就可以添加你想要的监听函数了,在点击的时候就可以调用这个函数,然后你在里面处理就可以了。