20140723

1、JSON数据格式

varpeople={"programmers":[{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},

{"firstName":"Jason","lastName":"Hunter","email":"bbbb"},

{"firstName":"Elliotte","lastName":"Harold","email":"cccc"}

],

"authors":[

{"firstName":"Isaac","lastName":"Asimov","genre":"sciencefiction"},

{"firstName":"Tad","lastName":"Williams","genre":"fantasy"},

{"firstName":"Frank","lastName":"Peretti","genre":"christianfiction"}

],

"musicians":[

{"firstName":"Eric","lastName":"Clapton","instrument":"guitar"},

{"firstName":"Sergei","lastName":"Rachmaninoff","instrument":"piano"}

]}

使用

people.programmers[0].lastName;

2renderTo以及render监听

将该组件渲染到某个容器里去

renderTo: Ext.getBody()

对于render而言,如果在新建一个panel的时候指定了其render属性,那么在其后使用该对象来进行组件添加操作是不会成功的,因为有了render以后,系统会先将panel在页面上进行显示,然后通过异步的方式来执行后面的操作,所以当执行后续的添加操作时就不会进行显示了,如果确实需要这样来实现相关的添加操作,那么就可以监听其render事件,该监听方法会在render之前执行,这时候就可以把需要添加组件的操作在该方法中执行。当没有指定render属性的时候就可以随意的 进行添加操作了,只是最后需要手动的调用类似于panel.render(document.body)这样的方法。

3、ExtJS API文档使用技巧

1)例:如何获取html中<div id=”hello” >你好</div>中的“你好内容”

第一种方法

var e=Ext.get(“hello”);

e.getHTML()//注意,这个getHTML()方法在spket中无法通过“.”号点出来,只能通过查看Ext文档,可以在文档中搜索Element(因为Ext.get(“hello”)返回的是一个Element对象)而后会找到Ext.dom.Element对象,查看它的Methods可以看到有个方法getHTML()如此便可。

第二种方法

var e=Ext.get(“hello”);

alert(e.dom.innerHTML);//将Element对象转化为dom对象,直接调用innerHTML

2)在文档中直接搜索panel会提示没有

我的解决办法:F12》index.html》搜索panel,然后再通过HTML代码查找

4、设置子Panel在其父Panel中的位置

Ext.onReady(Start);

function Start()

var t=Ext.create('Ext.panel.Panel',

    {

       width:200,

       height:100,

       x:'50%',//可以用50来指定为50px,也可以用’50%’来指定为50%

       y:'20%'

    }

    );

var MainPanel=Ext.create('Ext.panel.Panel',//API如何获取Panel的各个属性

    {

       width:400,//指定panel大小

       height:300,

        layout: 'anchor',//布局为anchor布局

        title:'数字时钟By Titan研发部',

        renderTo:Ext.getBody(),//renderTo

        x:200,//指定panel位置

        y:100

     

    });

  MainPanel.add(t);//两个panel类对象,通过add()把一个panel添加到另外一个panel对象里去

5、用ExtJS重构数字时钟程序

var MainPanel,showClock,manual_Correc,lastCorrect;

var xmlhttp,year, month,date,day,hour,minute,second,interval="";

 

Ext.onReady(Start);

//Start()生成UI

function Start()

 showClock=Ext.create('Ext.panel.Panel',

         {

                   width:240,

                   height:160,

                   x:5,

                   y:5,

                   layout:'absolute',

                   renderTo:Ext.getBody()

         }

         );

        

 MainPanel=Ext.create('Ext.panel.Panel',//API如何获取Panel的各个属性

         {

                   width:350,//指定panel大小

                   height:200,

             layout: 'absolute',//布局为abslute布局,之前为anchor布局button的位置得不到保证

             title:'数字时钟By Titan研发部智恒彪',

             /*renderToSpecify the id of the element, a DOM element or an existing

              * Element that this component will berendered into.

             */

             renderTo:Ext.getBody(),

             x:'50%',//指定panel位置

             y:'50%'

          

         });

 lastCorrect=Ext.create('Ext.panel.Panel',

         {

                   width:240,

                   height:20,

                   x:0,

                   y:140

         }

         );

 

 manual_Correct=Ext.create('Ext.Button', {

    text: '手动校准',

    x:275,

    y:5,

    /*

     * 1handler:can be used instead of click event

     * 2、如果加上(),那么在页面加载时Btn_mc_Click会先执行一遍

     */

    handler:correctClock              

});

  showClock.add(lastCorrect);

  MainPanel.add(showClock);//两个panel类对象,通过add()把一个panel添加到另外一个panel对象里去

  MainPanel.add(manual_Correct);

}

 

function startClock()

{

    correctClock();

    setInterval("refreshTime()",1000);

}

 

function refreshTime()

{

      second=second+1;

     if(second==60&&interval=="minute")

          correctClock();

      elseif(second==60&&minute==59&&interval=="hour")

          correctClock();

      elseif(second==60&&minute==59&&hour==23&&interval=="day")

          correctClock();

      if(second==60)

           {

                  minute=minute+1;

                  second=0;

                        if(minute==60)

                        {

                                 hour=hour+1;

                                      minute=0;

                                      if(hour==24)

                                       {

                                          hour=0;

                                       }

                             }

          }

          showClock.update(year+""+month+""+date+""+""+day+"<br/>"+

          (hour+100+"").substr(1)+":"+(minute+100+"").substr(1)+":"+(second+100+"").substr(1));

          

}

 

function correctClock()

     createXmlHttp();  

          xmlhttp.onreadystatechange=stateChange;

          xmlhttp.open("POST","getClock.jsp?s="+Math.random(),true);

     xmlhttp.send(null);

}

 

function  stateChange()  {

         if (xmlhttp.readyState==4 )

         {

             if(xmlhttp.status==200)

                  {

                                 var time=xmlhttp.responseText;

                                 setClock(time);//20140717星期四110611

             } 

         }

     }

 

function createXmlHttp()

          {

              if (window.XMLHttpRequest)

        {// code for IE7+, Firefox,Chrome, Opera, Safari

            xmlhttp=newXMLHttpRequest();

        }

       else

        {// code for IE6, IE5

            xmlhttp=newActiveXObject("Microsoft.XMLHTTP");

        }

          }

          

function setClock(time)

     year=time.toString().substr(2,4);

           month=time.toString().substr(6,2);

           date=time.toString().substr(8,2);

           day=time.toString().substr(10,3);

           hour=parseInt(time.toString().substr(13,2));

          minute=parseInt(time.toString().substr(15,2));

          second=parseInt(time.toString().substr(17,2));

           lastCorrect.update(year+""+month+""+date+""+""+day+(hour+100+"").substr(1)+":"

          +(minute+100+"").substr(1)+":"+(second+100+"").substr(1));//Update()设置名为"lastCorrect"Panel的内容

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值