
首先从数据库获取信息到前端,接收数据要用store,你把的路径写入数据库中,然后通过store去load数据到前端。
然后要看你要怎么展示,在哪显示了!
例如使用ExtXTemplate,自己去写显示的位置,样式等。可以去参考ext30文档中ExtDataView的例子
var store = new ExtdataJsonStore( {
fields : [ "id", "name", "path" ],
url: '',
});
storeload();
var tpl = new ExtXTemplate('<div class="aaa"><img src="" title="" /></div>',);
var dataview = new ExtDataView( {
store: store,
tpl: tpl,
});
var panel = new ExtPanel({
items:dataview
)}
还可以使用textfield,这就要自己完成整个panel或window的布局了
例如:
{
columnWidth : 5,
layout : 'form',
labelWidth : 60,
items : [{
xtype : 'textfield',
fieldLabel : '个人照片',
width : 150,
Height : 180,
inputType : 'image',
listeners : { // 该项被载入时加载照片
'render' : function(_filed) {
_filedgetEl()domsrc = "ajpg";//这里的路径可以预先从store中读取,赋给变量然后给它
}
}
}]
}
如果是在grid里显示,那么grid中的ColumnModel里可以有一个字段是路径,然后通过store传入该路径并显示
例如:
var sm = new ExtgridCheckboxSelectionModel();
var cm = new ExtgridColumnModel([new ExtgridRowNumberer(), sm,
{
header : "",
width : 40,
dataIndex : "path",
align : "center",
renderer : function(v) {
return "<img src='" + v +"'>"
}
},
还有很多跟有关的地方,我暂时也想不起来,看具体情况具体解决了,总之后台对应的是数据库,前台对应的是store,前后交互就是把后台的数据放store里,然后前台根据store做前台该做的事
//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);
大致是这样,首先将该集合转化为Extdatastore,当然也可以是jsonstore或者datastore,SimpleStore,看你的集合数据是json还是数组了。然后把这个store传给combobox,指定combobox的displayField和valueField 比如这样var data = [['guestid','idvalue'],
['agentid',idvalue]]; var ds = new ExtdataSimpleStore({
fields: [id, value],
data:data
}); var cb= new ExtformComboBox({
store: ds,
displayField:"id",
valueField:"value"
});
用如下的方法可以实现:
var dataStore = new ExtdataStore({
baseParams:{method:'query',sql:'feerate_list'},
proxy:new Extdata>
数据同步问题啊
应该是弄个事件监听,等数据加载完成之后才使用那个store的,不然你程序在那里是没有数据的
storeon('afterload',function(s){
//在这里 *** 纵你的store
});
1 使用form表单提交
使用表单提交是调用了表单的submit方法,其配置项包括url、method等。这种方式能够以JSON的形式提交参数信息。
var myform = Extcreate('ExtformPanel',{undefined
defaultType: 'textfield',
items:[{undefined
fieldLabel : 'Name',
name : 'name'
},{undefined
fieldLabel: 'Gender',
name : 'gender'
},{undefined
fieldLabel : 'Age',
name: 'age'
}],
buttons: [{undefined
text : 'load',
handler : function(){undefined
thisup('form')getForm()submit({undefined
url: '/request/userinfo',
method : 'POST',
success : function(form, action){undefined
consolelog(form);
ExtMsgalert('title', 'load success');
});
}]);
2 使用Ajax异步提交
将上述handler方法中的内容换成一下代码即可。在Ajax的request方法中是一个配置对象,其配置参数包括url,type,params。其中params表示要提交的参数,在此例中是从form表单中通过getValues()方法获得的。该种方式也能将参数一JSON的方式提交到后台,与一个对象匹配。
var values = thisup('form')getForm()getValues();
ExtAjaxrequest({undefined
url:'/request/userinfo',
headers : {undefined'userHeader': 'userMsg'},
type:'POST',
params:values,
success:function(response){undefined
var data = responseresponseText;
consolelog(data);
consolelog("success");
},
});
3 使用ExtdataStore
在项目中经常需要通过提交一些数据来从后台获取相应的信息。例如,在表单中输入某个人的id和name就可以查出它的相关信息并在前台显示。一个关于extjs的例子如下:
//data Model
Extdefine('User',{undefined
extend: 'ExtdataModel',
fields: [{name:'name',type:'string'},
{name:'gender',type:'string'},
{name:'age',type:'string'}
]
});
var userStore = Extcreate('ExtdataStore',{undefined
model: 'User',
pageSize: 20,
// autoLoad : true,
proxy: {undefined
type : 'ajax', //提交数据的方式
url : '/request/userinfo',
reader : { //以json的形式读取将要提交的数据
type : 'json',
root : 'resultList'
},
writer : {undefined
type : 'json'
},
actionMethods : {undefined
create : 'POST'
}
},
});
//grid Panel
Extcreate('ExtgridPanel',{undefined
store: userStore,
columns: [
{header : 'Name', dataIndex : 'name'},
{header : 'Gender', dataIndex : 'gender'},
{header : 'Age', dataIndex : 'age'}
],
height: 200,
width: 400,
renderTo: 'div2'
});
//form Panel
var myform = Extcreate('ExtformPanel',{undefined
defaultType: 'textfield',
items:[{undefined
fieldLabel: 'Name',
name: 'name'
},{undefined
fieldLabel: 'Gender',
name: 'gender'
},{undefined
fieldLabel : 'Age',
name : 'age'
}],
buttons: [{undefined
text: 'load',
handler: function(){undefined
var values = thisup('form')getForm()getValues();
consolelog(values);
userStoreproxyextraParams=values;
userStoreloadPage(1);
}
}
});
在handler方法中获取form表单的参数后,赋值给userStoreproxyextraParams,然后调用userStoreloadPage(1)。调用loadPage()方法时,会委托给proxy对象去后台获取数据。所以对proxy的配置是核心。使用这个方式从后台获取数据时,后台接口返回的对象应该包括一个List字段,list中包含所需要的具体信息。比如
@ReponseBody
public UserInfoResp getUserInfo(User user) {undefined
}
UserInfoResp应该像这样有一个List字段
class UserInfoResp {undefined
List<User> resulltList;
}
以上就是关于ext中怎么导出所有数据全部的内容,包括:ext中怎么导出所有数据、extjs 中怎么得到GridPanel中显示的列的id或者dataIndex、请问Ext中如何用循环等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)