Ⅰ extjs grid 處理當前行不取消其他選擇行…………如編輯當前行……其他選擇行不被取消如何
編輯模式無法選擇多行,如果沒有編輯模式倒是可以。
selModel:{
selType:'rowmodel',
mode:'MULTI'
}
官網說明:
"MULTI"- Allows complex selection of multiple items using Ctrl and Shift keys.
允許復雜的多項選擇,使用Ctrl 或Shift 建。
Ⅱ 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 : ['-', ' ', 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表格單元格如何自動換行
<style type="text/css">
.x-grid3-cell-inner, .x-grid3-hd-inner { white-space:normal !important; }
</style>
Ⅳ extjs中textarea 換行符應該怎麼寫
這個得用htmleditor來進行編輯換行
Ⅳ Extjs 4.x 為GridPanel動態添加一行數據
//聲明對應grid的Record對象
var ItemRecord = Ext.data.Record.create([
{name:'itemid'},
{name:'itemcode'},
{name:'itemname'},
{name:'price'},
{name:'mark'}
]);
//點新增按鈕時則執行類似如下函數
function addNewLine2Grid(grid){
var rec = new ItemRecord({ //實例化Record對象,並賦予各欄位初始值
'itemid': 0,
'itemcode': '',
'itemname': '',
'price': 0.00,
'mark': ''
});
grid.store.insert(grid.store.getCount(), rec); //插入新行作為grid最後一行
grid.getView().refresh(); //刷新
//grid.plugins[1].startEditing(grid.store.getCount()-1,4); //編輯最後一行第4列
}
Ⅵ extjs 如何實現在表格編輯狀態下輸入數字後,按回車自動到下一行的編輯狀態
你在GRID裡面加一個KEYS 監聽回車。
然後在監聽方法裡面獲取當前編輯的CELL 然後得到當前編輯的CELL下一列的CELL。 然後調用開始編輯方法。
具體的用法可以看看editgridpanel的api 找到keys這個屬性 看看說明
Ⅶ 怎麼樣讓extjs grid豎著顯示,行列轉置
看了一下Extjs中代碼會知道,extjs中gridpanel中的表格是通過<div<table<tbody<tr<td<divcontent式的結構書寫的。要改變單元格邊框的樣式就要改變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啦