问题描述
Ext.onReady(function() {Ext.QuickTips.init();// 支持tips提示Ext.form.Field.prototype.msgTarget = 'side';// 提示的方式,枚举值为"qtip","title","under","side",id(元素id)// 高级查询panelvar formPanel = new Ext.FormPanel({title : "高级查询",border : false,height : 60,autoWidth : true,layout : "table",width : 50,url : "/exttext/UserMessageServlet", items : [{style : "margin-left: 20",border : false,layout : "form",labelWidth : 70,items : [{style : "margin-top: 5",xtype : 'textfield',fieldLabel : "商家姓名",id : 'smsName',name : "smsName",maxLength : 20,allowBlank : false}]}, {border : false,items : [{xtype : 'button',type : "submit",text : "提交",style : "margin-left: 60",handler : function() {formPanel.getForm().submit();}}]}]});// 定义远程代理var proxy = new Ext.data.HttpProxy({url : "/exttext/UserMessageServlet"});// 解析器var reader = new Ext.data.XmlReader({totalRecords : "results",// 分页条数record : "CimUser"// 服务端返回对象的名字,这里一定不能写 root}, Ext.data.Record.create([{name : "userId"}, {name : "userName"}, {name : "userLoginId"}, {name : "userSuperId"}]));// 定义数据源对象(必须定义)var store = new Ext.data.Store({autoLoad : true,// 应该是自动加载reader : reader// 解析器,proxy : proxy,// 代理params : {start : 0,limit : 3}});// 创建Grid表格组件 相关于smvar checkboxSelectionModel = new Ext.grid.CheckboxSelectionModel();// 定义行号var rowNum = new Ext.grid.RowNumberer({header : '行号',width : 40});// 分页var bbr = new Ext.PagingToolbar({store : store,pageSize : 3,displayInfo : true,displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条',emptyMsg : "没有记录",beforePageText : "当前是第 "})// 主panelvar gridPanel = new Ext.grid.GridPanel({title : "商家信息",collapsible : true,store : store,height : 480,stripeRows : true,// 分隔符sm : checkboxSelectionModel,viewConfig : {autoFill : true},bbar : bbr,columns : [// 配置表格列rowNum, // 表格行号组件checkboxSelectionModel, {header : "编号",dataIndex : 'userId',sortable : true}, {header : "名称",dataIndex : 'userName',sortable : true}, {header : "登录ID",dataIndex : 'userLoginId',sortable : true}, {header : "父级编号",dataIndex : 'userSuperId',sortable : true}, {header : "操作",dataIndex : "userId",renderer : function(value, cellmeta, record, rowIndex,columnIndex, store) {var userId = record.get("userId");var userSuperId = record.get("userSuperId");var str = "<input type='button' value='查看' onclick='button("+ userId + "," + userSuperId + ")'/>";return str;},renderer : function(value, cellmeta, record, rowIndex,columnIndex, store) {var userId1 = record.get("userId");var userSuperId1 = record.get("userSuperId");var str1 = "<input type='button' value='优先' onclick='button("+ userId1 + "," + userSuperId1 + ")'/>";return str1;}}]});// 布局panelvar panel = new Ext.Viewport({layout : "border",border : true,collapsible : true,items : [{region : "north",height : 60,title : "",items : [formPanel]}, {region : "center",items : [gridPanel],autoHeight : true}]})})function button(userName, userSuperId) {alert("userMessage:" + userName + " " + userSuperId);}Ext.onReady(function() {Ext.QuickTips.init();// 支持tips提示Ext.form.Field.prototype.msgTarget = 'side';// 提示的方式,枚举值为"qtip","title","under","side",id(元素id)// 高级查询panelvar formPanel = new Ext.FormPanel({title : "高级查询",border : false,height : 60,autoWidth : true,layout : "table",width : 50,url : "/exttext/UserMessageServlet", items : [{style : "margin-left: 20",border : false,layout : "form",labelWidth : 70,items : [{style : "margin-top: 5",xtype : 'textfield',fieldLabel : "商家姓名",id : 'smsName',name : "smsName",maxLength : 20,allowBlank : false}]}, {border : false,items : [{xtype : 'button',type : "submit",text : "提交",style : "margin-left: 60",handler : function() {formPanel.getForm().submit();}}]}]});// 定义远程代理var proxy = new Ext.data.HttpProxy({url : "/exttext/UserMessageServlet"});// 解析器var reader = new Ext.data.XmlReader({totalRecords : "results",// 分页条数record : "CimUser"// 服务端返回对象的名字,这里一定不能写 root}, Ext.data.Record.create([{name : "userId"}, {name : "userName"}, {name : "userLoginId"}, {name : "userSuperId"}]));// 定义数据源对象(必须定义)var store = new Ext.data.Store({autoLoad : true,// 应该是自动加载reader : reader// 解析器,proxy : proxy,// 代理params : {start : 0,limit : 3}});// 创建Grid表格组件 相关于smvar checkboxSelectionModel = new Ext.grid.CheckboxSelectionModel();// 定义行号var rowNum = new Ext.grid.RowNumberer({header : '行号',width : 40});// 分页var bbr = new Ext.PagingToolbar({store : store,pageSize : 3,displayInfo : true,displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条',emptyMsg : "没有记录",beforePageText : "当前是第 "})// 主panelvar gridPanel = new Ext.grid.GridPanel({title : "商家信息",collapsible : true,store : store,height : 480,stripeRows : true,// 分隔符sm : checkboxSelectionModel,viewConfig : {autoFill : true},bbar : bbr,columns : [// 配置表格列rowNum, // 表格行号组件checkboxSelectionModel, {header : "编号",dataIndex : 'userId',sortable : true}, {header : "名称",dataIndex : 'userName',sortable : true}, {header : "登录ID",dataIndex : 'userLoginId',sortable : true}, {header : "父级编号",dataIndex : 'userSuperId',sortable : true}, {header : "操作",dataIndex : "userId",renderer : function(value, cellmeta, record, rowIndex,columnIndex, store) {var userId = record.get("userId");var userSuperId = record.get("userSuperId");var str = "<input type='button' value='查看' onclick='button("+ userId + "," + userSuperId + ")'/>";return str;},renderer : function(value, cellmeta, record, rowIndex,columnIndex, store) {var userId1 = record.get("userId");var userSuperId1 = record.get("userSuperId");var str1 = "<input type='button' value='优先' onclick='button("+ userId1 + "," + userSuperId1 + ")'/>";return str1;}}]});// 布局panelvar panel = new Ext.Viewport({layout : "border",border : true,collapsible : true,items : [{region : "north",height : 60,title : "",items : [formPanel]}, {region : "center",items : [gridPanel],autoHeight : true}]})})function button(userName, userSuperId) {alert("userMessage:" + userName + " " + userSuperId);}现在的情况是:能正常显示,正常分页,但有点高级查询时,服务端能正常输出查询的XML,分页数也正常,但客户端却说语法错误,小第在此求解决办法,谢谢了??????????? 问题补充:formPanel.getForm().submit(); //是表单提交,并不是使用gridpanel进行数据加载 你在点击提交的时候使用。 store.baseParams = formPanel.getForm().getValues();//吧form表单作为store参数查询 store.load({params:{start:0,limit:20}});//查询数据 可还是说语法错误为什么呢?服务端也能正常输出XML
解决方案
为什么只能显示一个优先按钮,而不能显示查询呢?一列只有一个renderer起作用,两个按钮合起来不就好了么,return str+str1
解决方案二:
你事件函数是button 不是 onButton 你检查下代码。没输出来可能是没值。
解决方案三:
汉字字母都代表字符串, 字符串参数需要 '' 或者 "" return "<input type='button' value='优先' onclick="button('"+ userId1 + "','" + userSuperId1 + "')"/>";
解决方案四:
json 属性一样,第二个会覆盖第一个。
解决方案五:
后台数据格式呢?
解决方案六:
formPanel.getForm().submit(); //是表单提交,并不是使用gridpanel进行数据加载你在点击提交的时候使用。store.baseParams = formPanel.getForm().getValues();//吧form表单作为store参数查询store.load({params:{start:0,limit:20}});//查询数据