主题: 同ext框架中使用问题续 |
作者: cqhydz, 发布日期: 2009-11-17 03:04:25, 浏览数: 7620 |
..........
new addForm() ; KE.init({ id : 'code1', width : '700px', height : '300px' }); //创建编辑器,必须在DOM加载完成后执行 //创建编辑器 KE.create( 'code1'); 好现在可以创建成编辑器 ,但有个问题来,就是我需要创建时初始化一些数据放到 code1 编辑器中。就你你示例中哪首诗一样。 |
作者: Roddy, 发布日期: 2009-11-17 09:11:40 |
回复 |
作者: cqhydz, 发布日期: 2009-11-17 12:29:56 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>程序</title> <link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" /> </head> <body> <script type="text/javascript" src="http://www.extjs.com/deploy/dev/adapter/ext/ext-base.js" ></script> <script type="text/javascript" src="http://www.extjs.com/deploy/dev/ext-all.js" ></script> <script type="text/javascript" src="http://www.kindsoft.net/kindeditor/kindeditor.js" ></script> <h3>JavaScript动态创建编辑器</h3> <div id="editor_area"></div> </body> </html> <script type="text/javascript"> Ext.onReady( function (){ addForm = Ext.extend(Ext.form.FormPanel , { constructor:function(){ addForm.superclass.constructor.call(this , { renderTo : document.body, reader: new Ext.data.JsonReader( {root:'rows'}, [ 'code1'] ) ,tbar:[{ text:"提交", iconCls: 'tbar-save', handler:function(){ this.getForm().submit({url:"aaa.asp" , success:this.onSubmit,timeout:15000,waitTitle:"数据传送" , waitMsg:"数据传送中,请稍候..." , scope:this}) ; }, scope:this }] ,items:[{ xtype:'fieldset', id:'panelmain' , labelWidth:20, autoHeight:true, title:"test", items:[{ xtype:'panel', anchor:'100%', layout:'form', items:[{ xtype:'textarea', id : 'code1', name : 'code1', fieldLabel : '请输入信息' ,width:500 ,height:200 }] }] }] ,listeners:{ "render":function(){ } } }) ; } }); PersonInfoupPanel = Ext.extend(Ext.Panel , { constructor:function(_cfg){ Ext.apply(this , _cfg) ; this.form = new addForm() ; ; this.form.getForm().doAction('load',{ url : 'data/test.asp', timeout:15000,waitTitle:"数据传送" , waitMsg:"数据传送中,请稍候..." , method:'get' }); PersonInfoupPanel.superclass.constructor.call(this , { //renderTo : document.body, title:"修改", closable: true, border : false, autoScroll : true , items:this.form }) ; } }) ; new PersonInfoupPanel() ; KE.init({ id : 'code1', width : '700px', height : '300px' }); //创建编辑器,必须在DOM加载完成后执行 //创建编辑器 // KE.create( 'code1'); setTimeout("KE.create( 'code1');", 1000); // Change }); </script> --------------------- data/test.asp 内容{totalCount:'1',rows:[{code1:'测试产品发布'}]} 这里有两个较大问题,第 一个,就是在载入数据时KE的生成,生成是可以了,但数据总是没有,只好用 setTimeout("KE.create( 'code1');", 1000); // 延时算是解决了 , 但问题很大主要数据较大时载入时间长时,控件就会失效变为空白,第二个问题是提交,照理说post提交是code1值,示例子中code1修改后提交发现值post出去的是原值,是否是KE在create创建了一个新的code1,所以没有取到。 |
回复 |
作者: Roddy, 发布日期: 2009-11-17 13:19:26 |
提交前需要用KE.util.setData把数据设回原来的textarea。
|
回复 |
作者: cqhydz, 发布日期: 2009-11-17 13:25:48 |
怎么还原呢,有示例吗
{ text:"提交", iconCls: 'tbar-save', handler:function(){ this.getForm().submit({url:"aaa.asp" , success:this.onSubmit,timeout:15000,waitTitle:"数据传送" , waitMsg:"数据传送中,请稍候..." , scope:this}) ; }, scope:this },{ text:"还原", iconCls: 'tbar-save', handler:function(){ alert(KE.util.setData('code1')) ; }, scope:this } 没有效果,找不到数据 |
回复 |
作者: cqhydz, 发布日期: 2009-11-17 13:39:52 |
哦,我明白了,现在使用ID作为创建的方式很不好用,如果能以Name创建就好了,在ext框架中使用id是很麻烦的,
|
回复 |
作者: cqhydz, 发布日期: 2009-11-17 13:41:44 |
问一下,现在支持name方式创建吗
|
回复 |