以前Ext和后台交互都通过了Dwr,dwr返回一个Object,然后将object赋值给一个javascript变量,然后将它和datagrid绑定。
这几天做页面改造想把dwr去掉不使用dwr获取数据,而使用ext直接获取,传输格式为Json
cw_gxzt.js 此页面显示用户构造Datagrid
Ext.namespace('com.greatchn.finance.js.view');
com.greatchn.finance.js.view.cw_gxzt = function() {
};
Ext.applyIf(com.greatchn.finance.js.view.cw_gxzt.prototype, {
cw_gxztservice:null,
init:function(){
this.cw_gxztservice=new com.greatchn.finance.js.service.cw_gxztService();
var wjsZtInfoStore=this.cw_gxztservice.queryWjsZtInfo('cwGxzt.do?method=queryWjsZtlinkAndQyinfo','post','');//为接收的帐套store
/***grid**/
this.wjsgxztGrid=new Ext.grid.EditorGridPanel({
title: '未接受的帐套',
header: false,
viewConfig: {
forceFit:true
},
applyTo:'mydiv',
frame:true,
height:500,
width:520,
autoScoll:true,
layout:"fit",
store:wjsZtInfoStore,
sm: new Ext.grid.CheckboxSelectionModel(),
columns: [new Ext.grid.RowNumberer(), new Ext.grid.CheckboxSelectionModel(), {
header: "帐套名称",
dataIndex: "ztmc",
sortable: true
}
]
});
}
});
cw_gxztService.js 获取store
Ext.namespace("com.greatchn.finance.js.service");
com.greatchn.finance.js.service.cw_gxztService = function() {
};
Ext.applyIf(com.greatchn.finance.js.service.cw_gxztService.prototype, {
/**获取store信息**/
queryWjsZtInfo : function(url, method, condition) {
var store = new com.greatchn.finance.js.store.cw_gxztStore().getStore();
var conn = Ext.lib.Ajax.getConnectionObject().conn;
conn.open(method, url, false);
conn.send(condition);
//alert(conn.responseText);
var data=Ext.util.JSON.decode(conn.responseText);
store.loadData(data);
return store;
},
})
cw_gxztStore.js 创建grid所需的记录集的格式
Ext.namespace("com.greatchn.finance.js.store");
com.greatchn.finance.js.store.cw_gxztStore = function(){};
Ext.applyIf
(
com.greatchn.finance.js.store.cw_gxztStore.prototype,
{
getStore: function()
{
/* 定义记录集 */
var Cwgxzt = Ext.data.Record.create
(
[
{name: "ztmc", mapping: "ztmc"}//mapping对应json,name对应gridpanel的dataIndex
]
);
/* 定义JsonReader的元数据对象 */
var meta =
{
root:"Ztdm",//对应json最前面的{Ztdm:[{....}]}
id:'ztdm'
};
/* 创建JsonReader数据解析器 */
var JsonReader = new Ext.data.JsonReader(meta, Cwgxzt);
/* 创建内存代理 */
var memoryProxy = new Ext.data.MemoryProxy();
/* 创建数据集对象 */
var store = new Ext.data.Store
(
{
proxy:memoryProxy,
reader:JsonReader
}
);
return store;
}
}
);
后台请求的action
public ActionForward queryWjsZtlinkAndQyinfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception {
// TODO Auto-generated method stub
I_0000_ZTManageService service = (I_0000_ZTManageService)this.getService("I_0000_ZTManageService");
List list=service.getZtlinkAndQyinfoListForZtstate("U000019", "G01");
net.sf.json.JSONArray arr = net.sf.json.JSONArray.fromObject(list);//通过JSONLIB将list转成JSON
response.setCharacterEncoding("UTF-8");
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires", 0);
System.out.println(arr.toString());
response.getWriter().write("{Ztdm:"+arr.toString()+"}");//返回给EXT的JSON
return null;
}
分享到:
相关推荐
EXT GridPanel获取某一单元格的值
Ext GridPanel 中实现加链接操作 Ext GridPanel 中实现加链接操作 Ext GridPanel 中实现加链接操作
将页面的GridPanel中的数据导出到Excel中 测试Ext:版本2.2.1 支持GridSummary,GroupSummary和GroupHeaderPlugin插件 使用方法: 1)把三个JS文件引入到页面中 2)调用例句: var data2Excel = new Ext.icss.Data2...
Ext的gridpanel控件二次加载时丢失解决方案
Ext GridPanel加载完数据后进行操作,比如load数据之后选定某些行数据,下面有个示例,需要的朋友可以参考下
使用ext.net代码动态创建gridpanel后任意显示在各种窗口中
该例子实现了ext的gridpanel多层表头+分组+小计以及与Java后台交互的全代码。还有自适应浏览器大小的功能包括导出excel,里面有注释,可能注释不全。分别为group.jsp,totals.jsp页面。
Ext.grid.GridPanel 删除线 放到example文件夹下运行
EXT实例GridPanel. 实现简单的。
gridpanel增删改 gridpanel增删改 与后台 SQL语句
NULL 博文链接:https://shenhaiquan.iteye.com/blog/1474328
ext.net gridpanel 弹出窗
Ext.grid.GridPanel属性祥解, 表格部门的详解,通俗易懂,适合初学人员,以及想对GridPanel有个精析认识的Web开发人员
对于GridPanel中拖动选中行排序的实现,网上有不少ExtJs实现的例子,但是没有找到使用Ext.net实现的,正好最近有个需求要使用,干脆来写一个。 DEMO功能说明: 1、拖动GridPanel选中行到新位置排序。 2、在拖动结束...
tapestry4.02中封装ext的GridPanel组件
NULL 博文链接:https://wv1124.iteye.com/blog/741559
NULL 博文链接:https://redboy5711.iteye.com/blog/259913
Ext修改GridPanel数据和字体颜色等,不是单指EditGridPanel 首先获取选中的行(当然也可以获取单元格): 代码如下: var selectedRow = grid.getSelectionModel().getSelected(); 修改设置: 代码如下: selectedRow....
Ext 根据数据库返回json动态生成grid列表实例 完整代码
Ext grid panel 滚动条位置不变,适用于实时数据的刷新