0
A
回答
2
我成功地做到了一種行跨度,而不是行分裂的。海事組織更容易,它看起來像附加圖像上的網格一樣。示例代碼:
var grid = new Ext.grid.EditorGridPanel({
[...],
// hook up events
initComponent: function() {
Ext.grid.GridPanel.prototype.initComponent.call(this);
this.getView().on('refresh', this.updateRowSpan, this);
this.getView().on('rowupdated', this.updateRowSpan, this);
},
onLayout : function(vw, vh) {
this.updateRowSpan();
},
// set span on rows
updateRowSpan: function() {
var columns = this.getColumnModel().config,
view = this.getView(),
store = this.getStore(),
rowCount = store.getCount(),
column = columns[0], // put propert column index here
dataIndex = column.dataIndex,
spanCell = null,
spanCount = null;
spanValue = null;
for (var row = 0; row < rowCount; ++row) {
var cell = view.getCell(row, 0),
record = store.getAt(row),
value = record.get(dataIndex);
if (spanValue != value) {
if (spanCell !== null) {
this.setSpan(Ext.get(spanCell), spanCount);
}
spanCell = cell;
spanCount = 1;
spanValue = value;
} else {
spanCount++;
}
}
if (spanCell !== null) {
this.setSpan(Ext.get(spanCell), spanCount);
}
},
// set actual span on row
setSpan: function(cell, count) {
var view = this.getView(),
innerCell = Ext.get(cell.down('*')),
height = cell.getHeight(),
width = cell.getWidth();
cell.setStyle('position', 'relative');
if (count == 1) {
innerCell.setStyle('position', '');
innerCell.setStyle('height', '');
innerCell.setStyle('height', '');
} else {
innerCell.setStyle('position', 'absolute');
innerCell.setStyle('height', (height * count - cell.getPadding('tb') - innerCell.getPadding('tb')) + 'px');
innerCell.setStyle('width', (width - cell.getPadding('lr') - innerCell.getPadding('lr')) + 'px');
}
}
});
此代碼通過應用position: absolute
和足夠大的尺寸,以低於覆蓋行改變了.x-grid3-cell-inner
風格。請注意,您還必須應用一些不透明背景才能使其工作。工作樣本:http://jsfiddle.net/RpxZ5/8/
我第一次寫代碼的Ext JS 4,如果你有興趣,這裏是工作示例:http://jsfiddle.net/wQSQM/3/
+0
這是完美的! – shiva
+0
它確實有效,但有一個問題。由於'.X-GRID3 - 細胞inner'施加'位置:absolute'的'forcefit'功能停止工作對於該行。你可以檢查你提供的jsfiddle。任何想法如何解決? 這個問題只在3.4版本中。它可以與4.x一起使用 –
相關問題
- 1. Ext JS EditorGridPanel不可編輯
- 2. 在Ext JS 2.0.2中從EditorGridPanel刪除行
- 3. GWT-Ext EditorGridPanel渲染問題
- 4. Ext JS - 多行顯示字段
- 5. 顯示/隱藏在Ext JS的一系列單行元件4
- 6. 網格顯示在Ext JS中
- 7. 如何在phpExcel中拆分單元格
- 8. Ext Js 4 - 網格單元格到單元格的拖放?
- 9. 將Excel中的多值單元格拆分成行
- 10. 拆分單元格中的字符串並創建多行
- 11. 拆分分隔字符串/單元格的值爲多行
- 12. 如何將字符串拆分爲多個單元格的單元格?
- 13. EXT JS 4.1如何在tabPanel中顯示網格
- 14. 將行中的單元格中的文本拆分爲多行,對於多列
- 15. 拆分多個單元格到列
- 16. JTable拆分單元格。我如何
- 17. ExtJS的 - EditorGridPanel:當選定單元格
- 18. 如何在熊貓數據框的多行中拆分單元格的值?
- 19. 如何編輯Ext JS 3.4中的網格面板中的單元格?
- 20. 如何將多行數據顯示爲逗號分隔的單個單元格
- 21. 如何隱藏和顯示ext js 4.2中的網格面板行?
- 22. 如何在Ext Js中顯示子菜單?
- 23. Ext JS的網格顯示多個報頭
- 24. Ext Js - 顯示/隱藏網格的標題菜單
- 25. ExtJS EditorGridPanel〜設置行高和單元格寬度以顯示所有單元格內容
- 26. 如何拆分更多的活動單元格
- 27. 如何在EXT-GWT中拆分面板?
- 28. 如何在單獨的Ext網格中顯示相關模型?
- 29. Ext Js如何將組合框添加到網格中的特定單元格?
- 30. 如何在iphone中顯示多行內表格單元格中的文本?
哪個Ext JS的版本? – Krzysztof
ExtJS的3.4版本 – shiva
在內線4+很容易 - 你可以,而不是分裂,只設置rowspan的第一列細胞。另一方面,在Ext 3.4中並不那麼容易。每行都被渲染爲用div包裹的獨立表格,所以rowspan將不起作用。最簡單的方法可能是改變第一列中的單元格樣式並將它們渲染到下面的單元格中。我稍後會想出一些事情。 – Krzysztof