我动态添加其中一个tabPanel,使用autoLoad自动加载一个show.jsp文件。
其中show.jsp是含一个组件EditGridPanel,其显示server.xml中的内容。
单独打开show.jsp,显示正常,但将show.jsp的url作为动态添加的tabPanel的autoLoad的值时后,再打开那个tabPanel时,show.jsp中的EditGridPanel组件显示出来,但是数据不显示。
由于单独打开show.jsp显示一切正常,故原因应该出在动态添加tabPanel上,它的代码如下:
//添加树节点的单击事件 docTreePanel.on('click',function(node,e){ //判断标签页是否存在,若存在,激活此页,若不存在,则新建一个 var mainTabPanel = Ext.getCmp("mainTabPanel"); var exit = mainTabPanel.getItem(node.id); if(!exit){ var tabPage = node.id; tabPage = mainTabPanel.add({ id:node.id, height:710, title:node.text, autoLoad:{ url:node.attributes.url, scripts:true }, }); mainTabPanel.doLayout(true); mainTabPanel.setActiveTab(tabPage); } else{ mainTabPanel.setActiveTab(node.id); } });
初学ext,希望大家指教。谢谢
问题补充:
感谢大家的回复,现在贴出show.jsp的代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- 处理文档类别的浏览、编辑、删除 -->
<html>
<head>
<title>文档类别浏览</title>
<link rel="stylesheet" type="text/css" href="../../extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="../../extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../extjs/ext-all.js"></script>
<script type="text/javascript">Ext.onReady(function(){
Ext.QuickTips.init();
// shorthand alias
var fm = Ext.form;//创建列 var cm = new Ext.grid.ColumnModel([ { header: "ID", dataIndex: 'id', width: 100, }, { id:'common', header: "名称", dataIndex: 'common', width: 250, editor: new fm.TextField({ allowBlank: false }) }, { header: "价格", dataIndex: 'price', width: 250, align: 'left', editor: new fm.TextField({ allowBlank: false, }) } ]); //创建数据记录 var Plant = Ext.data.Record.create([ {name:'id',type:'string'}, {name: 'common', type: 'string'}, {name: 'botanical', type: 'string'}, {name: 'price', type: 'float'}, // automatic date conversions ]); // create the Data Store var store = new Ext.data.Store({ //自动加载数据 autoLoad:true, // load using HTTP url: 'plants.xml', //数据解析器 reader: new Ext.data.XmlReader({ //重要,xml文件的对象节点名为Plant,如<Plant>..</Plant> record: 'Plant' }, Plant), sortInfo:{field:'common', direction:'ASC'} }); // 创建可编辑的表格面板 var grid = new Ext.grid.EditorGridPanel({ store: store, cm: cm, renderTo: 'editorGrid-div', width:600, height:300, frame:true, clicksToEdit:1 });
});
</script>
</head><body>
<div id="editorGrid-div"></div>
</body>
</html>
此种方式比较拙劣,如不行,希望大家给出实现这种效果的思路,谢谢