主题: 同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方式创建吗
回复
发表新帖 发表回复