extjs编写自定义组件,第一个例子


第一个例子很简单,通过网站名称的链接进入对应的网站,直接上代码(代码基于extjs2.3):

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>extjs自定义组件 例子1</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../ext-all.js"></script>
</head>

<body>
<script type="text/javascript">
Ext.ux.CheckList = Ext.extend(Ext.DataView,{
    textField:'text',
    urlField: 'url',
    initComponent: function(){
    
          this.tpl = new Ext.XTemplate(
        '<table border="0" cellspacing="0" cellpadding="0"><tr><tpl for="."><td width="120"><span style="cursor:pointer;" onclick="document.getElementById(\'iframe1\').src=\'{' + this.urlField + '}\';">{' + this.textField + '}</span></td></tpl></tr></table><p><iframe id="iframe1" src="" frameborder="0" width="1000" height="500" /></p>');

      Ext.ux.CheckList.superclass.initComponent.call(this);
    }
});
Ext.reg('checklist', Ext.ux.CheckList);


Ext.onReady(function(){
    Ext.QuickTips.init();

    var myData = [
    ['新浪','http://www.sina.com.cn/'],
    ['百度','http://www.baidu.com/'],
    ['网易','http://www.163.com']
    ];

    var ds = new Ext.data.Store({
        reader: new Ext.data.ArrayReader({},
             [{name: 'text'},{name: 'url'}])
    });

    ds.loadData(myData); 

    document.myCheckList = new Ext.ux.CheckList({
        store: ds,
        mode: 'local',
        textField: 'text',
        urlField: 'url',    
        autoScroll: true,
        renderTo: 'list1'
    });
});

</script>
<div id="list1" style="padding:20px;"></div>
</body>
</html>

 

这里简单介绍一下initComponent方法里面的含义:

1、this.tpl指的是控件要输出的内容

2、标签<tpl for="."></tpl>里面的内容根据数据项循环输出

3、用{}大括号可以把数据项里面的内容相应的替换进去。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM