extjs小问题,很急帮忙看一下

现在grid添加了两个按钮,我现在想给按钮的click做监听,不会取按钮的对象。直接上代码:
Ext.onReady(function(){

var cm = new Ext.grid.ColumnModel([
//new Ext.grid.RowNumberer(),
{header:'编号',dataIndex:'id',sortable:true},
{header:'名称',dataIndex:'name',sortable:true},
{header:'描述',dataIndex:'descn',sortable:true},
{header:'操作',dataIndex:'oper',sortable:true,renderer:oper}
]);

var data =[
    ['1','name1','desc1'],
    ['2','name2','desc2'],
    ['3','name3','desc3'],
    ['4','name4','desc4'],
    ['5','name5','desc5']
];

var store = new Ext.data.Store({
    proxy:new Ext.data.MemoryProxy(data),
    reader:new Ext.data.ArrayReader({},[
        {name: 'id'},
        {name: 'name'},
        {name: 'descn'}
    ])
});

function oper(){
    return "<input id='modify' type='button' value='修改'/>&nbsp;&nbsp;&nbsp;<input id='del' type='button' value='删除' onclick='Ext.Msg.confirm(\"删除提示\",\"您确认要删除吗?\",function(){alert(\"删除成功!\")})'/>";
}

store.load();


var grid = new Ext.grid.GridPanel({
    renderTo:'grid',
    //id:'grid',
    height:200,
    width:450,
    store:store,
    cm:cm
});

});

1.v是当前单元格的值

2.p里保存的是cellId单元格id,id不知道是干啥的,似乎是列号,css是这个单元格的css样式。

3.record是这行的所有数据,你想要什么,record.data["id"]这样就获得了。

4.rowIndex是行号,不是从头往下数的意思,而是计算了分页以后的结果。

5.i列号。

6.ds,也就是对应grid store。

Ext.get("del")
get方 法
get方法用来得到一个Ext元素,也就是类型为Ext.Element的对象, Ext.Element类是Ext对DOM的封装,代表DOM的元素,可以为每一个DOM创建一个对应的Element对象,可以通过Element对象 上的方法来实现对DOM指定的操作,比如用hide方法可以隐藏元素、initDD方法可以让指定的DOM具有拖放特性等。get方法其实是 Ext.Element.get的简写形式。

看你代码感觉你是想在click事件里取对应这一行数据。
Ext.onReady(function(){

var cm = new Ext.grid.ColumnModel([
//new Ext.grid.RowNumberer(),
{header:'编号',dataIndex:'id',sortable:true},
{header:'名称',dataIndex:'name',sortable:true},
{header:'描述',dataIndex:'descn',sortable:true},
{header:'操作',dataIndex:'oper',sortable:true,renderer:oper}
]);

var data =[
['1','name1','desc1'],
['2','name2','desc2'],
['3','name3','desc3'],
['4','name4','desc4'],
['5','name5','desc5']
];

var store = new Ext.data.Store({
proxy:new Ext.data.MemoryProxy(data),
reader:new Ext.data.ArrayReader({},[
{name: 'id'},
{name: 'name'},
{name: 'descn'}
])
});

function oper(p, r, rowIndex, i, ds) {
return "   ";
}

store.load();

var grid = new Ext.grid.GridPanel({
renderTo:'grid',
//id:'grid',
height:200,
width:450,
store:store,
cm:cm
});
Ext.gr = grid ;
});

function deleteRow(row) { //click 事件获取事件
alert(Ext.encode(Ext.gr.getStore().getAt(row).data));
}

你检查看看 rowIndex值是什么。rowIndex表示第几行

function oper(p, r, rowIndex, i, ds) {
[code="java"]alert(rowIndex)[/code]
return "   <input id='del' type='button' value='删除' onclick='deleteRow("

  • rowIndex + ")'/>"; }

不还意思少些了个参数

function oper(v, p, r, rowIndex, i, ds) {
    alert(rowIndex)
    return "<input id='modify' type='button' value='修改'/>&nbsp;&nbsp;&nbsp;<input id='del' type='button' value='删除' onclick='deleteRow("
            + rowIndex + ")'/>";
}