请教大侠一个问题,我用Ext做一个系统实现了增删修改功能,增加修改都可以弹出一个FormPanel,那么查看时,我想弹出一个框里面都是html,这个怎么实现,用什么组件呢,先谢谢各位大侠了
说个思路。
查看页面新建一个window.
window 的 body 放html.
html 渲染有两种方式:
1. 使用 ExtJS 的思路:
1). 使用 XTemplate 创建模板代码( html 代码 + 一堆占位符)
2). 从 JsonStore 中获取 Model ,
3). 用 model 渲染 XTemplate , 生成html
4). 将html放到window的body中
Form disable 的方式比较卡, 不推荐。
点击查看详细按钮的时候,获得grid中选中行的数据,创建一个formpanel,然后把它放到window中,显示窗口。
选中grid行,点击"查看详细"按钮,在按钮的点击事件里这么写:
var grid = Ext.getCmp(gridId);
var selRecord = grid.getSelectionModel().getSelected();
if (selRecord == null || selRecord == '') {
return;
}
var id = selRecord.data["id"];
Ext.Ajax.request({
method: 'POST',
url: "xxx",// 查询数据的URL
params: {
id: id
},
success: function(response, option) {
// 创建formpanel...
var win = new Ext.Window({
id: "xxx",
title: "xxx",
layout: 'fit',
width: 350,
height: 280,
resizable: false,
modal: true,
items: formpanel
});
win.show();
},
failure: function(response, option) {
}
});
displayfield或者找下弹出的组件有没有html属性,然后设值
如果查看界面想和增加修改保持统一,那就像楼上说的,用formpanel和displayField,这个field是没有输入框的,专门用于展示。
或者可以用grid来展示,用于field项比较多的情况,做成
姓名 | xxx | 年龄| xxxx
性别 | xxx | 学校| xxxx 这样形式的grid
html : ....类似这种的,就行
或者直接 contentEl : 'divId', 引进来,