㈠ 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版本開始支持通過使用函數名來實現事件監聽器。