extjs得到grid所有的行的第一列

extjs得到grid所有的行的第一列,第1张

选中状态

var storeData = ExtgetCmp('GridPanel')getSelectionModel()getSelections();

var selectInvoiceArr = [];

for (var i = 0; i < storeDatalength; i++) {

selectInvoiceArrpush(storeData[i]data); //把所有的值加入到数组里面

}

var jsonData = Extencode(selectInvoiceArr);转为json传到后台;

没选中的好像不可以把。。。

“也就是说显示在grid的中的数据并不一定是store的数据”这句话是错误的!

你用store加载的数据,是经过Record解析的,也就是说,store装的就是record解析完的数组,而数组里的对象就是你record解析的对象。而你所说的,只是通过renderer方法,把store中的数据renderer后展现在grid上,而这个renderer是属于ColumnModel的,它只是用来做grid上的显示,而真正记录的数据只有sotre!

解决这个有两种方式:

1你sotre加载数据之前,把该对象数组重新组织,组织成你真正想要的数据后再load!

2遍历store的record记录,在遍历到你经过处理的dataIndex时,在按你的处理方式处理遍数据即可!

for(var i=0,len=storedatalength;i<len;i++){

var data = storegetAt(i)data;//data就是对应record的一个一个的对象

datadataIndex //获取的就是该对象dataIndex属性对应的值

}

这两种说白了就是你真实想要什么记录的对象,要么在sotre之前组织,要么在遍历之后组织!总之store所load的数据会一直被store持有着,你不remove也不reload,他就不会变!

11:数据对应的列,加了一个点击事件,获取到该列的值,然后赋值

{

align: 'center',

text: 'A,

dataIndex: 'A',

width:60,

renderer : function(val, meta, record) {

val = "<a href='javascript:;' >"+val+"</a>";

metatdAttr = 'data-qtip="' + val + '"';

return '<div align="left">' + val + '</div>';

},

listeners:{

'click':function(){

var rows = gridgetSelectionModel()getSelection();

displayfieldsetValue(rows[0]get('A'));//通过rows[0]get('字段名')来获取A字段的值,然后赋值给displayfield

}

}

2如果有点击事件的话,你可以直接使用 var rows = gridgetSelectionModel()getSelection();获取store的数据模型(存放了所有的记录),rows[0]是指定行的记录(包括隐藏的字段),displayfield这个在grid外面创建好的,在grid可以引用到的话可以直接使用 displayfieldsetValue(rows[0]get('A'));来赋值

3

var display = Extcreate('ExtformfieldDisplay',{

xtype: 'displayfield',

fieldLabel: 'Visitor',

name: 'visitor_score',

value: '11'

})

var grid = Extcreate('ExtgridPanel', {

store: store,

columns: [

{text : 'Company',

flex : 1,dataIndex: 'company',

renderer : function(val, meta, record) {

val = "<a href='javascript:;' >"+val+"</a>";

return val;

},

listeners:{

'click':function(){

var rows = gridgetSelectionModel()getSelection();

displaysetValue(rows[0]get('name'))

}

}

} ], dockedItems: [{

xtype: 'toolbar',

dock: 'top',

items: [display]

}]

});

});

//extjs grid是没有列index的,他是只有行的index。

//你要获取列数据,其实也就是获取store里面的数据值。只能用遍历store的方法。

//比如你要获取name列的所有值,那么就遍历这个store。

var name_str;

for (var i = 0; i < storegetCount(); i++) {

var record = storegetAt(i);

alert(recordget('name'));

//name_str  = name_str + name;  //进行拼接

alert(name_str);

function deletefileItems() {

var gsm = fileGridgetSelectionModel();//获取选择列

var rows = gsmgetSelections();//根据选择列获取到所有的行

if (rowslength > 0) {

//当有选择的数据的时候

for (var i = 0; i < rowslength; i++) {

//循环迭代所有的选择的row

var row = rows[i];

var filePath = rowget('filePath');//这个就是你想要的

ExtAjaxrequest({

//省略ajax请求后台

});

}

}else{

ExtMsgalert('提示', '请选择要删除的记录');

}

};

说明:

var filePath = rowget('filePath');

利用rowget('字段名称');

可以获得你想要的字段值

以上就是关于extjs得到grid所有的行的第一列全部的内容,包括:extjs得到grid所有的行的第一列、Extjs中如何遍历grid的数据(正在显示的数据)、extjs的displayfield组件如何获取grid中的某一列的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9533691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存