选中状态
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中的某一列的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)