本文目录一览:
- 怎么设置悬浮窗
- 解决extjs grid 不随窗口大小自适应的改变问题
- extjs:gridpanel 列宽如何自适应浏览器的宽度
- extjs的grid列宽调整问题
- (加分)Extjs grid中鼠标触发事件
- 如何改变extjs中gridpanel单元格边框,上下边框
怎么设置悬浮窗
打开【微信】,点击进入好友聊天界面,打开文件,轻点右上角【更多】,选择【浮窗】,即可打开微信小窗口,回到首页,点击左上角浮窗图标或者右滑,即可打开文件;轻点【返回】图标,再点【删除】图标即可关闭小窗口。 悬浮窗是电脑或智能手机的系统工具,在其他应用的表面悬浮一可移动的窗口,以便打开不同应用,手机使用悬浮窗需要系统授权。 悬浮窗属于软件自带的小窗口或者悬浮功能显示,可以将软件的操作窗口悬浮于软件界面上方或者桌面上。 在下载软件时节约更多的系统资源,而且还能显示下载任务的速度以及完成度等信息。
解决extjs grid 不随窗口大小自适应的改变问题
在使用grid的时候窗口改变了但是grid却不能自适应,下面有个不粗的解决方法,大家可以参考下 最近遇到的问题,在使用grid的时候窗口改变了但是grid却不能自适应的改变于是加了一条这行语句 问题就解决了,效果图 拖大后的效果 添加的语句: 代码如下:
Ext.EventManager.onWindowResize(function(){
grid1.getView().refresh()
})
参看完整代码; 代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>grid</title>
<link href="../ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
<script src="../ext/adapter/ext/ext-base.js" type="text/javascript"></script>
<script src="../ext/ext-all.js" type="text/javascript"></script>
<script type="text/javascript">
Ext.onReady(function() {
function renderAdmin() {
return "<span style='cursor:pointer;' onclick='alert();'><img src='../IMAGES/icons/email.jpg'/></span>";
}
var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
sm,
{header:'<span style="cursor:pointer;"><img src="../IMAGES/icons/email.jpg"/></span>', dataIndex:'admin', width:30, renderer:renderAdmin, sortable:false},
{header:'ID', dataIndex:'id'},
{id:'name', header:'名称', dataIndex:'name'},
{header:'发送人', dataIndex:'from'},
{header:'收件人', dataIndex:'to'}
]);
var data = [
['','001','收件单一','张三','李四'],
['','002','收件单二','张四','李五'],
['','003','收件单三','张六','李七']
];
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, [
{name:'admin'},
{name:'id'},
{name:'name'},
{name:'from'},
{name:'to'}
])
});
store.load();
var grid1 = new Ext.grid.GridPanel({
renderTo: 'grid1',
name: 'grid1',
layout: 'fit',
title: '收件单',
autoHeight: true,
autoWidth: true,
bodyStyle: 'width:100%',
loadMask: true,
tbar: [
{text: '发送', icon: '../Images/icons/application_edit.jpg', cls: 'x-btn-text-icon'},
{text: '删除', icon: '../Images/icons/application_edit.jpg', cls: 'x-btn-text-icon'}
],
store: store,
frame: true,
cm: cm,
sm: sm,
viewConfig: {
forceFit: true
},
listeners: {
rowdblclick: function(n) {
var iid = grid.getSelectionModel().getSelected().data.id;
window.location.href = "SubFrame.html?id=" + iid;
}
}
});
Ext.EventManager.onWindowResize(function(){
grid1.getView().refresh()
});
});
</script>
</head>
<body>
<div id="grid1" style="width: 100%; height: 100%;"></div>
</body>
</html>
extjs:gridpanel 列宽如何自适应浏览器的宽度
用.x-grid3-header-offset{width:auto;}
就可以实现;
参考代码如下:
var sm = new Ext.grid.CheckboxSelectionModel({
handleMouseDown : function(){}
});
var gridColumn = new Ext.grid.ColumnModel([
sm,
{header:'地市', dataIndex:'areaName', width:200},
{header:'品牌', dataIndex:'brandName', width:200},
{header:'指标', dataIndex:'busiTypeName', width:200},
{header:'1日', dataIndex:'day1', width:200},
{header:'2日', dataIndex:'day2', width:200},
{header:'3日', dataIndex:'day3', width:200},
{header:'4日', dataIndex:'day4', width:200},
{header:'5日', dataIndex:'day5', width:200}
]);
var gridPanel = new Ext.grid.GridPanel({
id: 'gridPanelId',
cm: gridColumn,
sm: sm,
ds: gridStore,
frame: true,
autoScroll: true,
height: 550,
tbar: topToolbar,
bbar: new Ext.PagingToolbar({
id: 'pagingToolbarId',
store: gridStore,
displayInfo: true,
pageSize: 10
})
});
var linePanel = new Ext.Panel({
id: 'linePanelId',
frame: true,
contentEl: 'myChartId',
height: 550
});
var backPanel = new Ext.Panel({
id: 'backPanelId',
frame: true,
autoScroll: true,
items: [gridPanel, linePanel]
});
new Ext.Viewport({
layout: 'fit',
items: backPanel
});
注意:不要设置viewConfig: {forceFit: true}
,这个是把列宽(即ColumnModel的宽度)设置为自动宽度,不是整个GridPanel的宽度。
extjs的grid列宽调整问题
简单点:在column中加上
renderer: function (value, meta, record) {
meta.style = 'overflow:visible;white-space:normal;';
return value;
}
可以自动换行,如果要加Tip 前面加上:
Ext.tip.QuickTipManager.init();
column中加上:
renderer: function (value, meta, record) {
meta.tdAttr = 'data-qtip="' + value + '"';
return value;
}
(加分)Extjs grid中鼠标触发事件
<head>
<title>Debug Console</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="debug.css" />
<!-- GC -->
<!-- LIBS -->
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<!-- ENDLIBS -->
<script type="text/javascript" src="../../ext-all.js"></script>
<script type="text/javascript">
Ext.onReady(function(){
var cm = new Ext.grid.ColumnModel([
{header:'编号', dataIndex:'id', width:35},
{header:'名称', dataIndex:'name', width:80},
{header:'描述', dataIndex:'descn', width:120}
]);
var data = [
['1','name1','descn1'],
['2','name2','descn2'],
['3','name3','descn3'],
['4','name4','descn4'],
['5','name5','descn5']
];
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, [
{name: 'id'},
{name: 'name'},
{name: 'descn'}
])
});
store.load();
var grid = new Ext.grid.GridPanel({
autoHeight: true,
renderTo: 'grid',
store: store,
cm: cm,
viewConfig: {
forceFit: true
}
});
grid.on('mouseover', function(e) {
var index = grid.getView().findRowIndex(e.getTarget());
if(index !== false) {
var record = store.getAt(index);
var str = Ext.encode(record.data);
var rowEl = Ext.get(e.getTarget());
rowEl.set({
'ext:qtip': str
}, false);
}
});
var win = new Ext.Window({
id: 'window',
el: 'window-win',
layout: 'fit',
width: 500,
height: 270,
closeAction: 'hide',
items: [grid]
});
win.show();
Ext.QuickTips.init();
});
</script>
</head>
<body>
<div id="window-win">
<div id="grid"></div>
</body>
</html>
我比较爱好ext,曾经写了不少这方面的代码, 以上代码是现写的,调试通过, 以后大家可以讨论讨论
如何改变extjs中gridpanel单元格边框,上下边框
看了一下Extjs中html代码会知道,extjs中gridpanel中的表格是通过div table tbody tr td div content式的结构书写的。要改变单元格边框的样式就要改变Ext-all.css中.x-grid3-row这个样式。这个样式是应用到最外层div上的。
全局改变只需改变Ext-all.css里面的.x-grid3-row样式
比如你想去掉边框可以这样:
一、.x-grid3-row{cursor:default;border:0px solid #fff;border-top-color:#fff;width:100%;}
如果想个性一点,自己要定义一个样式然后应用到特定的行如:
一、.my-x-grid3-row{cursor:default;border:0px solid #ccc,border-top-color:#fff;width:100%;}
二、应用样式,获取div
var view = grid.getView();
var rows = view.getRows(); // 获取所有的行
var row = rows[0]; // 获取单行,就是你想改变的那一行,rows[1],rows[2].....都可以,就看你有多少列了
var cls = Ext.get(row); // 获取ext中外层div对象
cls.removeClass("x-grid3-row"); // 去掉原来的样式
cls.addClass("my-x-grid3-row"); // 加上自己的样式
这样你会发现原来的边框不见了。大家可以举一反三改变其他样式。 ps:extjs中css中核心的部分是Ext-all.css,所以大家要是想改变样式直接改变里面的东西就ok啦