extjs在panel中动态添加模板并加载数据

本文展示了如何在ExtJS的Panel中使用XTemplate动态添加模板并加载数据,通过JavaScript实现动态渲染表格内容。只需在CSS中定义相应样式,即可定制符合需求的界面效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不多说,直接上代码:

js文件如下:

// Ext的panel
Ext.define('MyApp.view.misDetailPanel', {
    extend: 'Ext.panel.Panel',

    requires: [
        'Ext.panel.Panel'
    ],

    id: 'MisDetailPanel',
    layout: 'border',
    closable: true,
	width:400,
	height:300,

    initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            items: [
                {
                    xtype: 'panel',
                    region: 'west',
                    id: 'misBaseInfo',
                    width: 200
                },
                {
                    xtype: 'panel',
                    flex: 1,
                    region: 'center',
                    id: 'misDailyInfo'
                }
            ]
        });

        me.callParent(arguments);
    }

});
// 创建界面
var win = Ext.create('MyApp.view.misDetailPanel', {title:'hahaha'});

var tp1 = new Ext.XTemplate(
	'<table cellpadding=0 cellspacing=0 border=1 width=200px class="missionDetail">',
	'<tr><td colspan=2 align=center><b>{name}的详细信息</b></td></tr>',
	'<tr><td>任务名:</td><td>{name}</td></tr>',
	'<tr><td>任务下发人:</td><td>{assignPeople}</td></tr>',
	'<tr><td>预计开始时间:</td><td>{planStartTime}</td></tr>',
	'<tr><td>预计结束时间:</td><td>{planEndTime}</td></tr>',
	'<tr><td>实际开始时间:</td><td>{actualStartTime}</td></tr>',
	'<tr><td>实际结束时间:</td><td>{actualEndTime}</td></tr>',
	'<tr><td>任务状态:</td><td>{statue}</td></tr>',
	'<tr><td>难度系数:</td><td>{grade}</td></tr>',
	'<tr><td>描述:</td><td>{memo}</td></tr>'
);

tp1.compile(); // 对模板进行编译,速度比较快.
// 模板数据
var data = {
	name:'1', 
	assignPeople:'2',
	planStartTime:'3', 
	planEndTime:'5', 
	actualStartTime:'7', 
	actualEndTime:'8', 
	statue:'0',
	grade:'a',
	memo:'cc'};

var html = tp1.applyTemplate(data);
// 找到要渲染的panel
var panel = win.queryById('misBaseInfo');
    panel.html = html;


Ext.onReady(function(){
				win.render(Ext.getBody());
				});

运行结果:


在css文件中加入相应的样式就可以使页面变成自己想要的模样。

如:

table.missionDetail tr
{
    height:30px;
    font-size:15px;
    border:1em solid red;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值