extjs 获取id的值_extjs关于获取被选取的record的id的问题

一个关于获取record的id 的问题,请看下面删除的函数deleteUser

UserList = Ext.extend(Ext.Panel, {

layout: 'fit',

autoWidth: true,

store: 'UserStore',

initComponent: function() {

this.items = [

{

xtype: 'editorgrid',

id:'grid_id',

store: 'UserStore',

border: false,

loadMask: true,

view: new Ext.grid.GridView({forceFit:true}),

selModel: new Ext.grid.CheckboxSelectionModel({width:20}),

columns: [new Ext.grid.RowNumberer({width: 30}),

{

xtype: 'gridcolumn',

header: '姓名',

sortable: true,

dataIndex: 'name',

width: 100,

editor: {xtype: 'textfield'}

},

{

xtype: 'gridcolumn',

header: '电子邮箱',

sortable: true,

dataIndex: 'email',

width: 150,

editor: {xtype: 'textfield'}

},

{

xtype: 'gridcolumn',

header: '用户名',

sortable: true,

dataIndex: 'username',

editable:false,

width: 100,

editor: {xtype: 'textfield'}

},

{

xtype: 'booleancolumn',

dataIndex: 'enable',

header: '可用',

sortable: true,

width: 100,

editor: {

xtype: 'checkbox',

boxLabel: '是否可用'

}

}

]

}

];

this.bbar = {

xtype: 'paging',

pageSize: 10,

store: 'UserStore',

displayInfo: true,

displayMsg: '显示第{0}条到{1}条记录,一共{2}条',

emptyMsg:'没有记录',

items: [

{

xtype: 'button',

text: '提交更新',

handler:this.saveUser

}

]

};

this.tbar = {

xtype: 'toolbar',

items: [

{

xtype: 'tbfill'

},

{

xtype: 'tbseparator'

},

{

xtype: 'button',

id: 'deleteUser',

text: '删除',

handler:this.deleteUser

},

{

xtype: 'tbseparator'

}

]

};

UserList.superclass.initComponent.call(this);

},

deleteUser :function() {

var userIds = Ext.getCmp("grid_id").selModel.selections.keys;

//问题出在这里:我想获取被选取的record的id,但获得的Id值如ext-record-21,ext-record-22....

// 看网上好多人用var userIds = this.selModel.selections.keys,在这里我不行,所以用getCmp来获取表格对象,可能是这个的问题,但不确定。请高手可以帮忙看一下,谢谢,

if (userIds.length <= 0) {

Ext.MessageBox.alert('提示', '请选择要删除的数据');

return;

}

var submitFun = function(buttonId, text, opt) {

if (buttonId == 'yes') {

micrite.util.ajaxRequest({

url: 'DeleteUser.action',

params:{'userIds':userIds},

success:function(r,o){

//var res = Ext.decode(r.responseText);

//if (res && res.success){

this.store.reload();

//}

},

failure:Ext.emptyFn

},this);

}

};

Ext.Msg.show({

title:'删除操作',

msg: '是否删除',

buttons: Ext.Msg.YESNO,

scope: this,

fn: submitFun

//icon: Ext.MessageBox.QUESTION

});

},

问题补充:感谢各位的回答,我也做过了测试,各位的都是可以采纳的,而且可行的。我上面的代码大部分是用extjs designer生成的,我自己做了一点修改。

问题就想下面的大哥说的我没有在ds中定义id,我加多了一个id的属性,就可以获取了,我是用this.selModel.selections.keys; 其实就是可以得到一个以id组成的数组,中间也是用逗号隔开的,只要把它作为参数,传到后台,后台用以下代码就可以实现多行删除了public void delete(int[] userIds) {

for (int i = 0; i < userIds.length; i++) {

User user = userDAO.get(userIds[i]);

userDAO.delete(user);

}

}不是我写的,是我看别的项目里是这样用的,觉得不错就借用了。

当然this.selModel.selections.keys;的用法,我也不是很了解,看对大伙有没有用,如果有哪位对它比较了解的,可以分享一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值