導航:首頁 > 編程語言 > extjs4gridcopy

extjs4gridcopy

發布時間:2023-08-28 08:24:21

⑴ 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;
}
};

⑵ extjs4 嵌套頁面刷新父頁面grid問題

奇怪 你為什麼 要用ifram 我們一般都是定義一個viewport 給出border 布局,
比如你這樣的布局,我們一般就是在viewport 引用一個panel 或者form 來顯示你的查詢條件,region設置為north,再在viewport
引入一個grid region設置為center, 這樣他們就在一個界面中了 不久好拿對象了 。。
你這種不覺得慢么?也是 現在的電腦機子配置都很好,我們項目客戶那邊的還奔騰的處理器呢,用iframe慢的很的

⑶ 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.Panel插件復制選中單元格內容

if (!Ext.grid.GridView.prototype.templates) {
Ext.grid.GridView.prototype.templates = {};
}
Ext.grid.GridView.prototype.templates.cell = new Ext.Template(
'<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} x-selectable {css}" style="{style}" tabIndex="0" {cellAttr}>',
'<div class="x-grid3-cell-inner x-grid3-col-{id}" {attr}>{value}</div>',
'</td>'
);

添加如上代碼,就可以選專中了屬

⑸ ExtJS 4中如何獲取表格中改動的數據 如何將修改數據上傳和修改store

1.Ext.data.Model 裡面有dirty屬性,如果改動過,dirty=true,你可以根據這個判斷一下.
2.如何數據上傳的話,你可以將表中的數據存儲到一個數組裡面,然後傳到後台,到了後台再做處理.給你個例子
var answers = [];//存放表中數據
for (var i = 0; i < gridStore.getCount(); i++) {
var answer = gridStore.getAt(i);
answers.push(new Answer({
answer: answer.get("answer"),
isRight: answer.get("isRight")
}));
}
3.修改store的話,直接上傳之後store.load()一下就好了.
其實我覺得如果可以的話,直接將原本數據刪除,然後重新插入數據比較簡單一點

⑹ 如何使用extjs4 製作雙擊grid彈出窗口

給你個例子

//給grid添加雙擊事件
gridpanel.addListener('itemdblclick', click, this);

//創建WINDOW對象
var win;
click() { //雙擊GRID的方法
// var Model = gridpanel.getSelectionModel();
// var sels = Model.getSelection();
// if (typeof (sels) != 'undefined') {
// var len = sels.length;
// for ( var i = 0; i < len; i++) {
// var date = sels[i].data.DDATE;
// }
// }
if (!win) {
win = Ext.create('widget.window', {
title : '計劃單元',
closable : true,
closeAction : 'hide',
width : 800,
height : 500,
layout : 'border',
bodyStyle : 'padding: 5px;',
items : [ morefp, cenPanel, souPanel ] //ITEMS裡面是彈出窗體所包含的PANEL
});

}
win.setVisible(true); //設置可見
}

⑺ 關於extjs grid復制粘貼功能

editor:newExt.form.DateField({id:"id1"}),
renderer:function(value,metadata,record,rowIndex,colIndex,store){
//這里有,有stroe,你想要的值不都有了么
//比如,這個加在第三列,然後你肯定知道行數,用store定位到某行的record,那麼所有的值不都有了么,然後想怎麼賦值不就怎麼賦值(復制)了么
}

詳細的你可以查api

Ext.grid.Column中:

renderer
:Function
(可選)當該方法通過傳遞以下參數時,會返回可顯示的數據:
value:Object
該單元格的數據值。
metadata:Object
一個對象,您可以在其中設置以下屬性:

css:String
一個添加到該單元格的TD元素上的CSS樣式名。
attr:String
一個定義HTML屬性的字元串,應用到數據容器內的表格單元格元素上(例如:'style="color:red;"')。
record:Ext.data.record
從數據中提取的Ext.data.Record。
rowIndex:Number
Rowindex
colIndex:Number
Columnindex
store:Ext.data.Store
從該Ext.data.Store對象中提取記錄。

另外幾個你會用到的方法

Ext.data.Store中:

getAt(Numberindex):Ext.data.Record
獲取指定位置的記錄。
參數:
index:Number
需要查找的記錄的索引位置。
返回值:
Ext.data.Record
所傳遞的索引位置的Record。如果沒有找到,返回undefined

Ext.data.Record中:

get(Stringname):Object
獲取指定名稱欄位的值。
參數:
name:String
需要獲取值的欄位名稱
返回值:
Object
欄位的值。
set(Stringname,String/Object/Arrayvalue):void
將欄位名設置為指定的值。

⑻ ExtJS4如何自動生成控制grid的列顯示、隱藏的checkbox

由於某種原因,需要做一個控制grid列顯示的checkboxgroup,雖然EXTJS4中的gridpanel自帶列表可以來控制列的顯示隱藏,但是有這樣的需求(需要一目瞭然)
下面先上圖

接著前幾天做的工作,今天上午完成了定製欄位,思路是在上面的普通查詢或者高級查詢結束以後,獲得了列的fields,columns等信息,然後交給一個處理函數
makeCustomMadePanel,該函數用來生成checkboxgroup,生成的時候給它加上一個事件,原本以為checkbox會有類似於check的事件,結果API看了看貌似只有個change事件可以用,MD。。
下面貼下自己寫的
makeCustomMadePanel函數。。用來根據grid的列自動生成checkboxgroup(整個grid的標頭內容等信息均從後台得到,不管後台發來一個什麼表,都能生成一個checkboxgroup來控制列的隱藏顯示)
參數分別是gridpanel在reconfigure的時候用到的fields和columns,期中的var
t=grid_a.columnManager.headerCt.items.get(th.itemId);是關鍵。。這句用來獲得grid_a的列信息。。貌似在api中查不到。網上找了幾中方法都不適合。又不想給每個列一個ID。這是在stackoverflow.com/上找到的。。http://stackoverflow.com/questions/20791685/extjs-4-how-do-i-hide-show-grid-columns-on-the-fly
復制代碼
代碼如下:
function
makeCustomMadePanel(fields,cl)
{
var
x=cusMadePanel.getComponent('custom');
//console.log(cusMadePanel.getComponent('custom'));
for(var
i=0;i<fields.length;i++)
{
x.add(
{
xtype
:
'checkboxfield',
boxLabel
:
cl[i].header,
inputValue
:
fields[i].name,
checked:true,
itemId:i,
name
:
'custom',
listeners
:
{
change
:
function(th,
value,
oldValue,eop)
{
var
t=grid_a.columnManager.headerCt.items.get(th.itemId);
if(t.isVisible()){
t.setVisible(false);
}
else{
t.setVisible(true);
}
//grid_a.columns[3].setVisible(false);
}}
}
);
}
}
在給出customMadePanel
復制代碼
代碼如下:
Ext.define('customMadePanel',
{
extend
:
'Ext.form.Panel',
title
:
'定製欄位',
collapsible
:
true,
items
:
[
{
itemId:'custom',
xtype
:
'checkboxgroup',
fieldLabel
:
'選擇欄位',
columns
:
6,
items
:
[]
}]
//collapsed:true,
});
var
cusMadePanel=new
customMadePanel();
我這種做法的不足也很明顯,makeCustomMadePanel函數中的循環生成checkbox組件太耗時了,38個組件足足花了好幾秒。。用戶體驗肯定不好。。
並且目前是在每次查詢完之後都根據查詢的結果生成一遍。。。我再想想好的解決辦法
今天對makeCustomMadePanel做了優化,生成組件的速度與先前相比提升非常明顯!
復制代碼
代碼如下:
function
makeCustomMadePanel(fields,cl)
cusMade=1;
var
x=cusMadePanel.getComponent('custom');
//console.log(cusMadePanel.getComponent('custom'));
var
fie=[];
for(var
i=0;i<fields.length;i++)
{
//x.add(
var
temp=
{
xtype
:
'checkboxfield',
boxLabel
:
cl[i].header,
//inputValue
:
fields[i].name,
checked:true,
itemId:i,
name
:
'custom',
listeners
:
{
change
:
function(th,
value,
oldValue,eop)
{
var
t=grid_a.columnManager.headerCt.items.get(th.itemId);
//console.log(t.isVisible());
//console.log('break');
if(t.isVisible()){
t.setVisible(false);
}
else{
t.setVisible(true);
}
//console.log(t.isVisible());
//var
t1=grid_a.columnManager.headerCt.items.get(th.itemId);
//console.log(t1);
//grid_a.columns[3].setVisible(false);
}}
};
//console.log(temp);
fie.push(temp);
}
//console.log(fie);
x.add(fie);
思路就是先循環組好需要生成的組件對象,然後一次add,每一次add的開銷非常大,變為一次速度真的提升了很多很多~

⑼ extjs4.0 grid 行編輯 之後保存失敗

var records = storeERP.getUpdatedRecords();//這句可以獲取所有改變的值
alert(records);

Ext.Array.each(records, function(model) {
itemID = Ext.decode(model.data.BB002);
arr.push(itemID);

comID = Ext.JSON.encode(model.data.MW002);
alert(comID);
array.push(comID);
});
然後,全部提交,也就是一次性提交就好了,

你這樣試試看,一次性提交

閱讀全文

與extjs4gridcopy相關的資料

熱點內容
javafrom提交地址參數 瀏覽:721
git發布版本 瀏覽:728
vc修改文件名 瀏覽:149
linux65從域 瀏覽:321
用什麼東西壓縮文件 瀏覽:406
怎麼刪除ipad隱藏的APP 瀏覽:981
編程如何佔用大量內存 瀏覽:116
多個excel表格文件如何組合 瀏覽:918
ubuntu內核升級命令 瀏覽:679
pgp文件夾 瀏覽:894
一鍵還原的文件是什麼格式 瀏覽:581
女漢子微信名霸氣十足 瀏覽:65
win10手機藍屏修復 瀏覽:419
windows2008激活工具 瀏覽:259
g71的編程應注意什麼 瀏覽:572
文件路徑不符合是什麼意思 瀏覽:543
qq如何換綁微信綁定 瀏覽:67
文件包下載的安裝包在哪裡 瀏覽:811
90版本升級不送 瀏覽:186
工具箱英文 瀏覽:382

友情鏈接