㈠ extjs 怎样创建一个空表格,默认有10个空行,实现增加行和删除行急!
ExtJS 分页数据表文章分类:Web前端ir - DESC 排序方式 ASC为升序limit -25 记录数sort-lastpost 排序字段start -0 开始记录 $data[] = array("threadid" => 26816 ...);$pack = array(
"totalCount" => count($data),
"topics" => $data
);echo json_encode($pack);*/reader: new Ext.data.JsonReader({
root: 'topics',
totalProperty: 'totalCount', // 数据总跳数,用于计算分多少页
id: 'threadid', // 数据需要有ID
fields: [ // 字段列表
'title', 'forumtitle', 'forumid', 'author',
{name: 'replycount', type: 'int'},
{name: 'lastpost', mapping: 'lastpost', type: 'date', dateFormat: 'timestamp'},
'lastposter', 'excerpt' // lastpost传过来的是timestamp格式
]
}),
// turn on remote sorting 在远程进行排序
remoteSort: true
});
store.setDefaultSort('lastpost', 'desc'); // 默认排序方式// pluggable renders 特殊的字段显示Render
function renderTopic(value, p, record){ // value为字段当前值, p ? , record为整个记录
return String.format( // String使用 {0},{1}作为占位幅
'<b><a href="http://extjs.com/forum/showthread.php?t={2}" target="_blank">{0}</a></b><a href="http://extjs.com/forum/forumdisplay.php?f={3}" target="_blank">{1} Forum</a>',
value, record.data.forumtitle, record.id, record.data.forumid);
}
function renderLast(value, p, r){
return String.format('{0}<br/>by {1}', value.dateFormat('M j, Y, g:i a'), r.data['lastposter']);
}
// 列显示模型 (Column Model)var cm = new Ext.grid.ColumnModel([{
id: 'topic', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })
header: "Topic",
dataIndex: 'title',
width: 420,
renderer: renderTopic // 使用特殊的Renderer
},{
header: "Author",
dataIndex: 'author',
width: 100,
hidden: true // 默认隐藏
},{
header: "Replies",
dataIndex: 'replycount',
width: 70,
align: 'right' // 对齐方式
},{
id: 'last',
header: "Last Post",
dataIndex: 'lastpost',
width: 150,
renderer: renderLast // 特殊render
}]);// by default columns are sortable
cm.defaultSortable = true;// Grid Panelvar grid = new Ext.grid.GridPanel({
el:'topic-grid', // DiV容器显示GridPanel, 在HTML中<div id="topic-grid"></div>
width:700,
height:500,
title:'ExtJS.com - Browse Forums',
store: store,
cm: cm,
trackMouseOver:false,
sm: new Ext.grid.RowSelectionModel({selectRow:Ext.emptyFn}), // 不能Select ?
loadMask: true, // 显示载入提示
viewConfig: {
forceFit:true,
enableRowBody:true,
showPreview:true, // 是否显示摘要
getRowClass : function(record, rowIndex, p, store){
if(this.showPreview){
p.body = '<p>'+record.data.excerpt+'</p>';
return 'x-grid3-row-expanded';
}
return 'x-grid3-row-collapsed';
}
},
bbar: new Ext.PagingToolbar({ // 重要的分页工具条
pageSize: 25, // 每页条数
store: store,
displayInfo: true,
displayMsg: 'Displaying topics {0} - {1} of {2}', // 右下角提示
emptyMsg: "No topics to display", // 无记录
items:[ // show preview 显示按钮
'-', {
pressed: true,
enableToggle:true,
text: 'Show Preview',
cls: 'x-btn-text-icon details',
toggleHandler: toggleDetails // handler函数
}]
})
}); // render it
grid.render();// trigger the data store load
store.load({params:{start:0, limit:25}}); // 加载初始数据function toggleDetails(btn, pressed){
var view = grid.getView();
view.showPreview = pressed;
view.refresh();
}
});
JS代码注释:Ext.onReady(function(){// create the Data Store
var store = new Ext.data.Store({
// load using script tags for cross domain, if the data in on the same domain as
// this page, an HttpProxy would be better
// proxy: new Ext.data.ScriptTagProxy({
proxy: new Ext.data.HttpProxy({
url: 'debug.php' // 后端PHP
}),// create reader that reads the Topic records/* 后端PHP输出格式 PHP 接收的$_REQUEST参数
㈡ ext gridpanel 怎么去掉复选框
通过类名筛选出来一组元素,第一个元素就是那个复选框,然后对这个元素设置css样式就行了。我用的是Extjs6
㈢ 求助,extjs表格中最后的那列怎么去掉啊,效果在下面,求高手指点!!!!!
我觉得这不是最后一列。。。只是说你所有的列就只有这么宽了,所以后面留白了
你可以在其中一列中定义如下属性
columns: [{
text: '列名',
flex: 1,
dataIndex: 'xxx'
}]
用flex来填充宽,就不会留白了
其中
flex也可以是小数,即 flex: 0.5
所有列的flex相加最好为1,即其宽的百分比
㈣ extjs4.2 怎么显示的时候把后边的0去掉
解决思路:
数据库里的字段类型查询出来的字段最好变成yyyy-MM-dd格式(服务器程序里查询出日期后处卜档理为2015-01-01)。
前台定义extjs的前台GridPanel的columns里边为你的这个显示列加上renderer函数格式化一下日期即可(renderer:function(value){returnvalue?Ext.Date.dateFormat(value,"Y-m-d"):'';})。
下边是代码,你自己参考对比两列看吧,第一列有renderer函数,第二列没有:
Ext.create('Ext.data.Store',洞烂{
storeId:'simpsonsStore',
fields:[
{name:'xuqiu',type:'date',dateFormat:'Y-m-d'},
{name:'sheji',type:'date',dateFormat:'Y-m-d'}
],
data:{'items':[
{'xuqiu':'2015-12-31',"sheji":"2015-05-15"},
{'xuqiu':'2015-05-01',"sheji":"2015-05-15"},
{'xuqiu':'2015-04-23',"sheji":"2015-04-14"},
{'xuqiu':'2015-01-01',"sheji":"2015-05-18"}
]},
proxy:{
type:'memory',
reader:{
type:'json',
root:'items'
}
}
});
Ext.create('Ext.grid.Panel',{
title:'For半世迷离xi日期格式显示问题',
store:Ext.data.StoreManager.lookup('simpsonsStore'),
型颤乱columns:[
{text:'需求',dataIndex:'xuqiu',width:245,
renderer:function(value){returnvalue?Ext.Date.dateFormat(value,"Y-m-d"):'';}},
{text:'设计',dataIndex:'sheji',width:245}
],
height:200,
width:500,
renderTo:Ext.getBody()
});
运行出来的效果:
希望能帮到你,还有建议多看看Extjs API。
㈤ Extjs的优点
我最近做了一些EXTJS的项目,个人感觉的优点(绝对不是COPY)
UI全部帮你搞定,不内用费劲去弄样式!
浏览器容兼容性好,在各各浏览器下测试都OK!
和后台代码无关,不管你后面用C#也好 JAVA也好 还是PHP 都和它没关系。
动画效果,EXTJS的动画效果做得很不错,提高了用户的感知度。
缺点:
开发周期延长(要先学习才能灵活使用)
速度稍慢(对于丰富互联网应用是肯定有这个缺点的,不过可以忽略,现在带宽在一点点升级,网速也不是问题了)
㈥ extjs 里怎么让grid 取消选中某行
Ext.selection.Model.deselect(records)
用在grid中可以用:
grid.getSelectionModel().deselect(records);
其中参数 records , 可以是想取消选中的记录的数组 , 也可以是想取消选中的记录的 排序数
可以查看API
㈦ extjs gridpanel不能选中多行
第一、这个来sm,必须在ColumnModel和Gridpanel里都有自,而且是同一个,而且也不能和其他Gridpanel共用同一个SM。
第二、要想多选必须点复选框而不能点行。
第三、如果你的grid行支持拖拽那么也不能多选,这是Extjs的一个问题,貌似没法解决。
第四、如果以上三种都不行,你在选行的时候按住Shift或是ctrl就可以了!
㈧ extjs的作用
extjs主要功能:
1、网格
大型数据页面的无限/缓冲滚动功能得到很大改进。同时,对于网格的“锁定”功能,新增了锁定和未锁定两种状态。
2、布局
在布局上,通过避免浏览器回流来加快访问速度(浏览器回流,指浏览器为了重新渲染部分或全部的文档而重新计算文档中元素的位置和几何结构的过程)。同时,新增了“边界”布局方式。收缩包围的宽度问题,以前是用特定组件来处理,现在改为用核心组件来处理。
3、核心组件
XTemplates和方法重写功能得到显著改善。Ext.override现在开始支持重写实例方法,并且,可以通过使用标准的callParent函数来访问被重写的方法。
此外,4.1版本开始支持通过使用函数名来实现事件监听器。