導航:首頁 > 編程語言 > extjs雙層表頭

extjs雙層表頭

發布時間:2023-08-31 13:53:44

① extjs中有一個多欄表頭的GRID,第一欄是學院,第二欄分別是專業。如何可以獲取到第一欄表頭的內容

$(document).ready(function(){

var _data = [
{'name': 'a','id': 'b1','sex': 'b', 'age': '1'},
{'name': 'f','id': 'b2','sex': 'g','age': '2'},
{'name': 'h','id': 'b3','sex': 'g','age': '3'},
{'name': 'k','id': 'b4','sex': 'b','age': '4' },
{'name': 'a','id': 'b1','sex': 'b', 'age': '1'},
{'name': 'f','id': 'b2','sex': 'g','age': '2'},
{'name': 'h','id': 'b3','sex': 'g','age': '3'},
{'name': 'k','id': 'b4','sex': 'b','age': '4' },
{'name': 'a','id': 'b1','sex': 'b', 'age': '1'},
{'name': 'f','id': 'b2','sex': 'g','age': '2'},
{'name': 'h','id': 'b3','sex': 'g','age': '3'},
{'name': 'k','id': 'b4','sex': 'b','age': '4' },
{'name': 'a','id': 'b1','sex': 'b', 'age': '1'},
{'name': 'f','id': 'b2','sex': 'g','age': '2'},
{'name': 'h','id': 'b3','sex': 'g','age': '3'},
{'name': 'k','id': 'b4','sex': 'b','age': '4' }
]

var UI = {};
UI.Grid = {};
//className
function createTable(current,o){
var div = document.createElement('div');
div.style.width = '90%';
div.style.padding = '0';
for(var i = 0; i < o.data.length ; i++){

var div1 = document.createElement('div');
div1.style.width = '250px';
div1.style.height = '300px';
div1.style.cssFloat = 'left';
div1.style.padding = '0';
var ul = document.createElement('ul');
var li1 = document.createElement('li');
var li2 = document.createElement('li');
var li3 = document.createElement('li');
var div2 = document.createElement('div');
div2.style.width = '220px';
div2.style.height = '200px';
div2.style.backgroundColor = '#f6f6f6';
li1.appendChild(div2);
var div3 = document.createElement('div');
div3.style.width = '220px';
div3.style.height = '35px';
div3.style.backgroundColor = '#dddddd';
div3.innerHTML = '<p>'+o.data[i].name+'</p>';
li2.appendChild(div3);

var div4 = document.createElement('div');
div4.style.width = '220px';
div4.style.height = '35px';
div4.style.backgroundColor = '#f6f6f6';
div4.innerHTML = '<p>'+o.data[i].sex+'</p>';
li3.appendChild(div4);
ul.appendChild(li1);
ul.appendChild(li2);
ul.appendChild(li3);
div1.appendChild(ul);
div.appendChild(div1);
}
current.appendChild(div);
}

$.fn.creatSth = function(o){
UI.Grid[o.id] = o ;
var current = this[0];
var table = document.createElement('table');
table.style.cssText = 'width:100%;border-collapse:collapse;border: 1px solid #DDDDDD;';

//line 1
var tr1 = document.createElement('tr');
tr1.style.height = '8px';
var td11 = document.createElement('td');
td11.style.width = '8px';
var td12 = document.createElement('td');
var td13 = document.createElement('td');
td13.style.width = '8px';
tr1.appendChild(td11);
tr1.appendChild(td12);
tr1.appendChild(td13);

// toolbar - line
var trbar = document.createElement('tr');
trbar.style.height = '15px';
var tdbar1 = document.createElement('td');
var tdbar2 = document.createElement('td');
var tdbar3 = document.createElement('td');
tdbar2.innerHTML = '123123';
trbar.appendChild(tdbar1);
trbar.appendChild(tdbar2);
trbar.appendChild(tdbar3);

//line 2
var tr2 = document.createElement('tr');
var td21 = document.createElement('td');
td21.style.width = '8px';
var td22 = document.createElement('td');
createTable(td22,o);
var td23 = document.createElement('td');
td23.style.width = '8px';
tr2.appendChild(td21);
tr2.appendChild(td22);
tr2.appendChild(td23);

//line 3
var tr3 = document.createElement('tr');
tr3.style.height = '8px';
var td31 = document.createElement('td');
td31.style.width = '8px';
var td32 = document.createElement('td');
var td33 = document.createElement('td');
td33.style.width = '8px';
tr3.appendChild(td31);
tr3.appendChild(td32);
tr3.appendChild(td33);

table.appendChild(tr1);
if(o.tbar){
table.appendChild(trbar);
}
table.appendChild(tr2);
table.appendChild(tr3);
current.appendChild(table);
};

$('#test').creatSth({
id:'tb1',
cloum:[
{head:'name',datafield:'name'},
{head:'id',datafield:'id'},
{head:'sex',datafield:'sex'},
{head:'age',datafield:'age'}
],
data:_data
});

});

② ExtJS grid表頭如何增加下拉項

extjs自己提供復選框列

//checkbox列

varfilecheckbox=newExt.grid.CheckboxSelectionModel();

//GridPanel

varfileGrid=newExt.grid.GridPanel({

store:fileStore,

columns:[

newExt.grid.RowNumberer(),//顯示列數

filecheckbox,//顯示復選框列

{//其他顯示列}]

//省略其他屬性

});

這樣你就可以而得到一個復選框,可以進行單選、全選了

如果你想自己定義的話,也可以

//定義filters

varfilters=newExt.ux.grid.GridFilters({

//

encode:encode,//jsonencodethefilterquery

local:local,//defaultstofalse(remotefiltering)

filters:[{

type:'numeric',

dataIndex:'id'

},{

type:'string',

dataIndex:'company',

disabled:true

},{

type:'numeric',

dataIndex:'price'

},{

type:'date',

dataIndex:'date'

},{

type:'list',

dataIndex:'size',

options:['small','medium','large','extralarge'],

phpMode:true

},{

type:'boolean',

dataIndex:'visible'

}]

});

//

//

//thefiltertypes(

varcreateColModel=function(finish,start){

varcolumns=[{

dataIndex:'id',

header:'Id',

//=true

//tousestore'sfield'stypeproperty(iftypepropertynot

//'auto'which

//GridFilterswillassumetobe'StringFilter'

filterable:true

//,filter:{type:'numeric'}

},{

dataIndex:'company',

header:'Company',

id:'company',

filter:{

type:'string'

//

//,disabled:true

}

},{

dataIndex:'price',

header:'Price',

filter:{

//type:'numeric'//

}

},{

dataIndex:'size',

header:'Size',

filter:{

type:'list',

options:['small','medium','large','extralarge']

//,phpMode:true

}

},{

dataIndex:'date',

header:'Date',

renderer:Ext.util.Format.dateRenderer('m/d/Y'),

filter:{

//type:'date'//

}

},{

dataIndex:'visible',

header:'Visible',

filter:{

//type:'boolean'//

}

}];

returnnewExt.grid.ColumnModel({

columns:columns.slice(start||0,finish),

defaults:{

sortable:true

}

});

};

然後

vargrid=newExt.grid.GridPanel({

colModel:createColModel(4),

plugins:[filters],

//這兩個屬性是重點,加上去就可以了

});

效果看圖片。

建議你去下載官方的源代碼,然後看其中的例子。

裡面有一個就是如何自定義這個的

③ Extjs報表是用多表頭做的,單純的grid可以導,多表頭如何導出到Execl

復制好,然後在EXCEL裡面使用選擇性粘貼--數值
試試

④ extjs grid 列頭分行



/**

* 表格綜合示例

*

* @author XiongChun

* @since 2010-10-20

*/

Ext.onReady(function() {


group1 = [{}, {

header : '分組1-1a',

colspan : 4,

align : 'center'

}, {}, {

header : '分組1-3',

colspan : 5,

align : 'center'

}];


var group2 = [{}, {

header : '分組2-1',

colspan : 2,

align : 'center'

}, {

header : '分組2-2',

colspan : 2,

align : 'center'

}, {

header : '單位',

rowmerge:true,

domid:'group_dw',

align : 'center'

}, {

header : '分組2-3',

colspan : 2,

align : 'center'

}, {

header : '分組2-4',

colspan : 3,

align : 'center'

}];

/*

var group = new Ext.ux.grid.ColumnHeaderGroup({

rows : [group1, group2]

});

*/


var group = new Ext.ux.plugins.GroupHeaderGrid({

rows : [group1, group2]

});


// 定義自動當前頁行號

var rownum = new Ext.grid.RowNumberer({

header : 'NO',

width : 28

});

// 復選框

var sm = new Ext.grid.CheckboxSelectionModel();


// 定義列模型

var cm = new Ext.grid.ColumnModel([rownum, {

header : '項目ID', // 列標題

dataIndex : 'xmid', // 數據索引:和Store模型對應

sortable : true

// 是否可排序

}, {

header : '項目名稱',

dataIndex : 'xmmc',

sortable : true,

width : 200

}, {

header : '項目熱鍵',

dataIndex : 'xmrj'

}, {

header : '規格',

dataIndex : 'gg'

}, {

dataIndex : 'dw',

align:'center',

fixed:true,

width : 60

}, {

header : '啟用狀態',

dataIndex : 'qybz',

// 演示render的用法(代碼轉換,該render由<G4Studio:ext.codeRender/>標簽生成)

renderer : QYBZRender,

width : 60

}, {

header : '劑型',

dataIndex : 'jx',

width : 60

}, {

header : '產地',

dataIndex : 'cd',

width : 200

}, {

header : '醫院編碼',

dataIndex : 'yybm'

}, {

header : '更改時間',

dataIndex : 'ggsj'

}]);


/**

* 數據存儲

*/

var store = new Ext.data.Store({

// 獲取數據的方式

proxy : new Ext.data.HttpProxy({

url : 'gridDemo.do?reqCode=querySfxmDatas'

}),

// 數據讀取器

reader : new Ext.data.JsonReader({

totalProperty : 'TOTALCOUNT', // 記錄總數

root : 'ROOT' // Json中的列表數據根節點

}, [{

name : 'xmid' // Json中的屬性Key值

}, {

name : 'sfdlbm'

}, {

name : 'xmmc'

}, {

name : 'xmrj'

}, {

name : 'gg'

}, {

name : 'dw'

}, {

name : 'qybz'

}, {

name : 'jx'

}, {

name : 'cd'

}, {

name : 'yybm'

}, {

name : 'ggsj'

}])

});


/**

* 翻頁排序時候的參數傳遞

*/

// 翻頁排序時帶上查詢條件

store.on('beforeload', function() {

this.baseParams = {

xmmc : Ext.getCmp('xmmc').getValue()

};

});

// 每頁顯示條數下拉選擇框

var pagesize_combo = new Ext.form.ComboBox({

name : 'pagesize',

triggerAction : 'all',

mode : 'local',

store : new Ext.data.ArrayStore({

fields : ['value', 'text'],

data : [[10, '10條/頁'], [20, '20條/頁'],

[50, '50條/頁'], [100, '100條/頁'],

[250, '250條/頁'], [500, '500條/頁']]

}),

valueField : 'value',

displayField : 'text',

value : '20',

editable : false,

width : 85

});

var number = parseInt(pagesize_combo.getValue());

// 改變每頁顯示條數reload數據

pagesize_combo.on("select", function(comboBox) {

bbar.pageSize = parseInt(comboBox.getValue());

number = parseInt(comboBox.getValue());

store.reload({

params : {

start : 0,

limit : bbar.pageSize

}

});

});


// 分頁工具

var bbar = new Ext.PagingToolbar({

pageSize : number,

store : store,

displayInfo : true,

displayMsg : '顯示{0}條到{1}條,共{2}條',

plugins : new Ext.ux.ProgressBarPager(), // 分頁進度條

emptyMsg : "沒有符合條件的記錄",

items : ['-', '&nbsp;&nbsp;', pagesize_combo]

});


// 表格工具欄

var tbar = new Ext.Toolbar({

items : [{

xtype : 'textfield',

id : 'xmmc',

name : 'xmmc',

emptyText : '請輸入項目名稱',

width : 150,

enableKeyEvents : true,

// 響應回車鍵

listeners : {

specialkey : function(field, e) {

if (e.getKey() == Ext.EventObject.ENTER) {

queryCatalogItem();

}

}

}

}, {

text : '查詢',

iconCls : 'page_findIcon',

handler : function() {

queryCatalogItem();

}

}, {

text : '刷新',

iconCls : 'page_refreshIcon',

handler : function() {

store.reload();

}

},'->' ,{

text : '重設列標題',

iconCls : 'acceptIcon',

handler : function() {

cm.setColumnHeader('2','開天闢地');

}

}, {

text : '重設分組列標題',

iconCls : 'acceptIcon',

handler : function() {

Ext.getDom('group_dw').innerHTML = '開天闢地';

}

}]

});


// 表格實例

var grid = new Ext.grid.GridPanel({

// 表格面板標題,默認為粗體,我不喜歡粗體,這里設置樣式將其格式為正常字體

title : '<span class="commoncss">表格綜合演示七(表頭分組支持)</span>',

height : 500,

frame : true,

autoScroll : true,

region : 'center', // 和VIEWPORT布局模型對應,充當center區域布局

margins : '3 3 3 3',

store : store, // 數據存儲

stripeRows : true, // 斑馬線

cm : cm, // 列模型

tbar : tbar, // 表格工具欄

bbar : bbar,// 分頁工具欄

plugins : group,

viewConfig : {

// 不產橫向生滾動條, 各列自動擴展自動壓縮, 適用於列數比較少的情況

// forceFit : true

},

loadMask : {

msg : '正在載入表格數據,請稍等...'

}

});


// 頁面初始自動查詢數據

// store.load({params : {start : 0,limit : bbar.pageSize}});


// 布局模型

var viewport = new Ext.Viewport({

layout : 'border',

items : [grid]

});


// 查詢表格數據

function queryCatalogItem() {

store.load({

params : {

start : 0,

limit : bbar.pageSize,

xmmc : Ext.getCmp('xmmc').getValue()

}

});

}


});

⑤ extjs grid 怎樣合並單元格

具體步驟如下:
/*
這個方法四個參數分別是
row:合並起始行
col:合並起始列.這兩個參數是為了定位,要從哪個單元格開始合並.
type:是要合並行或者列.
num:是要合並的數量

//==>監聽load , 執行合並單元格
grid.getStore().on('load', function () {
span(grid, 0, 0, 'row', 5);
});
*/
var span = function (grid, row, col, type, num) {
switch (type) {
case 'row':
tds = Ext.get(grid.view.getNode(row)).query('td');
Ext.get(tds[col]).set({ rowspan: num });
Ext.get(Ext.get(tds[col])).setStyle({ 'vertical-align': 'middle' });
for (i = row + 1; i < row + num; i++) {
Ext.get(Ext.get(grid.view.getNode(i)).query('td')[col]).destroy();
}
break;
case 'col':
tds = Ext.get(grid.view.lockedView.getNode(row)).query('td');
Ext.get(tds[col]).set({ colspan: num });
break;
}
};

⑥ ExtJs中gridpanel表頭加復選框。數據列中已是復選框,可表頭卻沒有復選框

定義一個CheckboxSelectionModel啊~內~容~
var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([sm,{.....}]);
var grid=new Ext.grid.GridPanel({
sm:sm,
cm : cm,
store:store,
.......

閱讀全文

與extjs雙層表頭相關的資料

熱點內容
win10改變文件格式 瀏覽:475
linux中的物理地址和虛擬地址 瀏覽:493
有哪些app可以接游戲訂單 瀏覽:472
蘋果硬碟數據恢復要多少錢 瀏覽:394
js綁定下拉框資料庫數據 瀏覽:448
cad文件怎麼復制到另一個文件里邊 瀏覽:858
dxp鑽孔文件 瀏覽:631
iphone大悅城換機 瀏覽:538
找結婚對象上什麼網站 瀏覽:974
學生信息管理系統程序設計報告 瀏覽:640
微信文件怎麼刪除怎麼恢復 瀏覽:407
編程程序怎麼復制 瀏覽:467
文件更改 瀏覽:327
冰點文件路徑 瀏覽:730
軟體一點開文件就關閉 瀏覽:88
網路如何把人捧紅 瀏覽:961
軟體傳輸文件 瀏覽:184
密碼記錄器ios 瀏覽:412
兩個電腦數據怎麼一樣 瀏覽:829
順豐有什麼買東西的app 瀏覽:377

友情鏈接