extjs iframe使用

ExtJS虽然能够作出非常华丽的页面,但对于大量的数据显示来说任然存在着很多的不足!而使用iframe则可以巧妙的解决该问题,使我们运用Ext更加灵活自如,将我们的项目做得更加完美!下面讲述的就是iframe的简单用法:(如有更好的解决方案望各位指出)

1.index.html:

<script type="text/javascript">
var addWin = null;
var editWin = null;
var fun_del ;
Ext.onReady(function(){
editWin = new Ext.Window({
id:‘editWin‘,
title : ‘编辑窗口‘,
width : 400,
height : 350,
modal : true,
closeAction : ‘hide‘,
html:‘This is editForm!‘
});

addWin = new Ext.Window({
id:‘addWin‘,
title : ‘主窗口‘,
width : 400,
height : 350,
modal : true,
closeAction : ‘hide‘,
html:‘<iframe id="frame" name="frame" src="frame.html" width=100% height=100%/>‘
});
addWin.show();

fun_del = function(){
alert(‘This is delete function!‘);
}
});
</script>

2.frame.html

<script type="text/javascript">
function changeWin(){
Ext.onReady(function() {
parent.addWin.hide();
parent.editWin.show();
});
}
function delWin(){
parent.fun_del();
}
</script>

<body>
<a href="" onclick="changeWin();">编辑</a>
<a href="" onclick="delWin();">删除</a>
</body>

///////////////////

工作一年多来,最近的开发,虽说前台和后台都有分工,但是大部分经历都放在前台,界面上有太多的东西需要修改和完善,调试程序更是需要更多的时间,最近的工作在用xsl写样式将xml中的内容显示在界面上,而我们的界面是基于Extjs的,这样我们就在panel中使用html属性,获取内容显示,这样就存在一个问题,当我们需要更新panel中的内容时该怎么办,换面板是一个可以实现目标的方法,但是这似乎又是很笨的方法,我们需要放两个panel在这里,在苦思冥想后,发现Extjs中的panel有更新html的方法,具体怎么实践,可以看一下例子。

如下代码:先定义panel,panel中的html是已经有内容的,其中的dataURL是个变量,需要到后台程序中取数据

items: [
                                 {
                                     xtype: ‘panel‘,
                                     title: ‘可视化报告‘,
                                     id:‘InputXMLStylePanel‘,
                                     html:"<iframe width=100% height=100% id=‘InputXMLStyle‘name=‘InputXMLStyle‘ src=‘"+dataURL+"in‘/>",
                                     dockedItems: [
                                         {
                                             xtype: ‘toolbar‘,
                                             dock: ‘top‘,
                                             items: [
                                             {
                                              xtype:‘combobox‘,
                                              displayField:‘fileName‘,
                                              valueField:‘fileIndexId‘,
                                              queryMode:‘local‘,//
                                              id:‘MsgFileName‘,
                                              store:MsgSingleStore,
                                              fieldLabel:‘文件名称‘

                                             },{
                                              xtype:‘button‘,
                                              text:‘查看‘,
                                              handler:function(){
                                               var fileId = Ext.getCmp(‘MsgFileName‘).getValue();

//我们通过combobox中的不同内容来改变传递到后台的参数,以便获取不同的数据显示,在这里我们就用到Ext.getCmp(‘id‘).update(html)其中id为panel的id值,html为定义的html变量,如下句中的shtml或是html

                                               var urlChange="HTPApp.CSP.App.Result.cls?indexId="+fileId;
                                               var html="<iframe width=100% height=100% id=‘InputXMLStyle‘name=‘InputXMLStyle‘ src=‘"+urlChange+"&type=style&put=in&msg=24‘/>";
                                                          Ext.getCmp(‘InputXMLStylePanel‘).update(html);
                                                          var shtml = "<iframe width=100% height=100% id=‘InputXMLSource‘name=‘InputXMLSource‘        src=‘"+urlChange+"&type=source&put=in&msg=24‘/>";
                                                          Ext.getCmp(‘InputXMLSourcePanel‘).update(shtml);

                                               }
                                              },
                                             {xtype:‘tbfill‘},
                                                 {
                                                     xtype: ‘button‘,
                                                     width: 61,

//这部分实现打印功能,可以看出来我们panel中的html是写了一个iframe在打印的时候就可以直接用iframe的name值实现打印,例如下句中 InputXMLStyle.window.print();
其中 InputXMLStyle为上面定义的iframe的name值。
                                                     handler:function(){
                                                    InputXMLStyle.window.print();
                                       },
                                                     text: ‘打印‘
                                                 }
                                             ]
                                         }
                                     ]
                                 },
                                 {
                                     xtype: ‘panel‘,
                                     id:‘InputXMLSourcePanel‘,
                                     html:"<iframe width=100% height=100% id=‘InputXMLSource‘name=‘InputXMLSource‘ src=‘"+dataSourceURL+"in‘/>",
                                     title: ‘xml源文件‘

                                 }

                                    ]

extjs iframe使用

时间: 2024-10-11 23:03:03

extjs iframe使用的相关文章

09.13随笔2014年9月13日22:32:38

(1)学英语到 奶爸的英语教室 ,可以找到很多资源. (2)今天,看到一篇很不错的学习groovy的文章. 精通 Groovy groovy的中文站点 , 此站点右手边有一个 Eclipse plugin 可以很方便的找到对应eclipse版本的groovy插件安装. (3)extjs + iframe + mapabc ,我遇到一些奇葩的问题.好好想想吧. (4)eclipse的早期版本竟然忘记在哪里下载了. 其实代开官网在download,左边有版本代号,譬如3.6的是helios ....

ExtJs基础知识总结:Dom、IFrame和TreePanel(三)

概述 ExtJs是另外一种操作封装JavaScript的类库与Jquery同类.所以对Dom的操作也是支持的,比如修改Div内Html内容等操作.有几个问题需要思考下: 1.ExtJs也支持IFrame的操作,可是如何才能访问IFrame外部Parent的Extjs对象那? 2.在ExtJs中,我们能够通过TreePanel作为导航菜单,可是TreePanel的Root节点在合并和展开的两种状态展现出来的图标却是不一样,如何设置展开和合并时候图标一致性? 其实ExtJs通过简单的设置就能够解决上

ExtJs非Iframe框架加载页面实现

在用Ext开发App应用时,一般的框架都是左边为菜单栏,中间为tab页方式的显示区域.而tab页面大多采用的嵌入一个iframe来显示内容.但是采用iframe方式有一个很大的弊端就是每次在加载一个新的iframe时都要将Ext的核心js,css文件重新加载.由于Ext是一个庞大的类库,这些文件的体积都很庞大,仅仅是ext-all.js就有400多k,所以用iframe方式加载就大大降低了效率.为了能解决这个问题,我推荐使用Ext.Panel的autoload模式进行加载页面.用这种模式加载就可

extjs用iframe的问题

项目中用extjs做前提系统的界面是左边用树做目录 右边用tabpanel做内容展示点击树节点的时候 在tabpanel添加新的tab JScript code var newTab = centerPanel.add(new Ext.Panel({ id : tabId, title : tabTitle, iconCls : "treeNodeLeafIcon", layout : 'fit', border : false, closable : true, listeners

Extjs Window用法详解

今天我们来介绍一下Extjs中一个常用的控件Window.Window的作用是在页面中创建一个窗口,这个窗口作为容器,可以在它里面加入grid.form等控件,从而来实现更加复杂的界面逻辑. 创建Extjs Window 创建Extjs Window的代码如下: //创建window var win = Ext.create("Ext.window.Window", { id: "myWin", title: "示例窗口", width: 500

extjs的相关属性

通用属性: labelSeparator:''//表示fieldLabel后不会显示冒号":" readOnly:true//只读 focusCls: 'txtHalfInput'//有焦点时的样式 maxLength:3, enforceMaxLength:true//输入位数check fieldStyle: 'margin-top:3px;'//display上下不对齐解决办法 Ext.button.Button 属性: enableToggle:true//设置按钮为开关状态

ExtJS4.1 ExtJS TabPanel 双击标签关闭该页

/*总觉得 TabPanel 生成的那个关闭按钮太小关闭的时候不太顺手 感觉不方便 所以想双击关闭tab方便些于是在网上找到下面的代码 URL:http://atian25.iteye.com/blog/413920可是用在我的系统框架上无效,本人用的是ExtJs4.1.不知道是不是我的问题,可是实在找不出错在哪里.于是 自己想了个办法 亲测支持ExtJs4.1 可能有点麻烦 可是没办法 上面那个方法 我实在是找不出问题在哪里*///////////////////---下面是网上找的方法 本人

extjs tablepanel 高度自适应有关问题

extjs tablepanel 高度自适应问题 项目中为了给客户好点的功能切换体验,想到了用extjs的tabpanel 在页面中用了tabpanel后,高度新打开的tab页的iframe 的高度总是出现无法填满页面的情况 于是被迫给tabpanel指定了高度,为了达到自适应的效果用了 document.body.clientWidth document.body.clientHeight 代码如下: Ext.onReady(function() { Ext.BLANK_IMAGE_URL =

EXTJS和javaweb应用的开发思路

近期.做些几个基于extjs界面的应用.在此.总结一下要点.标题是基于javaweb,可是基本上各种server端语言都适用.使用Extjs做界面,无非就是取消了原来非常多的jsp文件,转而使用Extjs来訪问,但有些地方多少有些不方便,下面是我自己遇到的问题和经验. 1.多少个jsp合适呢?没有特殊要求的话,2个就能够,一个是login,一个是系统主页.登录页一般须要比較花哨.单独做一页.比較easy套用样式:主页则包括基本的布局.功能,而功能靠extjs来实现.对于一些特殊的页面.比方须要特