98国产在线视频福利_欧亚v视频日韩一区二区_国产在线精彩视频_亚洲伊人久久综合影院_亚洲欧美高清激情精品一区_少妇熟女天堂网av_午夜福利日本专区_中美女子成人毛片_大荫蒂毛茸茸视频国产_小14萝裸体自慰洗澡大尺度
登錄
注冊
關(guān)于我們
簡(jiǎn)體中文
ENGLISH
搜索
購物車(chē)
0 ITEMS ON YOUR CART
去購物車(chē)結算
合計:
¥0
首頁(yè)
動(dòng)態(tài)
方案
案例
專(zhuān)欄
期刊
聯(lián)系我們
首頁(yè)
期刊
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 動(dòng)態(tài)添加列
Ext JS開(kāi)發(fā)大全
第1章 Ext JS快速入門(mén)示例[4/4]
第12章[12.10]富文本編輯器 CKEditor與Ext JS的整合
第12章[12.10.1] Ext JS + CKEditor+Spring Boot 實(shí)現編輯器圖片上傳
第11章[11.6] Ext JS 自行搭建遠端庫的包升級版本后找不到的問(wèn)題解決
[Ext JS 4] 實(shí)戰之Grid, Tree Gird編輯
ext命令集
第12章[12.3] Ext JSGrid中的超鏈接列及其功能實(shí)現
[Ext JS]textfield添加compositionstart、compositionupdate 和compositionend _os
[Ext JS ] 動(dòng)添切換字段的必填與非必填
3.1 Ext JS 組件總覽
[Ext JS] Grid表格批量編輯的實(shí)現
Ext JS 快速開(kāi)發(fā)工具
帶觸發(fā)器按鈕的輸入框
Ext JS的布爾對象類(lèi)型處理及便捷方法
Ext JS的Object類(lèi)型處理及便捷方法
ExtJS RadioGroup(單選按鈕組) 使用及注意事項
Ext JS 模擬后端數據實(shí)現
ToolTip 實(shí)現全介紹
Ext JS下拉單選框(Combobox,TagFied)使用及疑難問(wèn)題解決
Ext JS應用測試概覽
Sencha Studio 監視工具( Inspect Tool)
Ext JS 4 升級指南
Ext JS 如何定義公用方法(單例類(lèi) or 靜態(tài)方法)
Ext JS的模塊化開(kāi)發(fā)(Package)
Ext3 -- Form 實(shí)例。 用來(lái)migrate file 數據到DB用的
ExtJS 3 在Tab下加入Form 實(shí)例
Extjs Grid 中給已經(jīng)添加過(guò)Filter的列增加標識
Extjs 實(shí)戰之 Ext.tree.TreePanel Tree無(wú)法顯示
Extjs彈出框的異步執行
Grid 動(dòng)態(tài)該表列( reconfigure)的性能改善
Spring Boot Ext JS準前后端框架應用的會(huì )話(huà)(Session)處理
[Ext JS 4] Extjs 圖表 Legend(圖例)的分行與分列顯示
[Ext JS 4] Extjs 之 initComponent 和 constructor的區別
[Ext JS 4] Grid 中的單元格添加Tooltip 的效果
[Ext JS 4] Grid 實(shí)戰之分頁(yè)功能
[Ext JS 4] Grid 組件
[Ext JS 4] MVC 應用程序框架
[Ext JS 4] MVC 應用程序框架
發(fā)布 [Ext JS 4] contentEL,renderTo, applyTo 釋義與區別
[Ext JS 4] 動(dòng)態(tài)加載
[Ext JS 4] 實(shí)戰之 ComboBox 和 DateField (消失之解決辦法)
[Ext JS 4] 實(shí)戰之 Picker 和 Picker Field
[Ext JS 4] 實(shí)戰之 帶week(星期)的日期選擇控件(二)
[Ext JS 4] 實(shí)戰之 ComboBox 和 DateField 的點(diǎn)擊事件在IE下失效
## [Ext JS 4] 實(shí)戰之 帶week(星期)的日期選擇控件(三)
[Ext JS 4] 實(shí)戰之 帶week(星期)的日期選擇控件
[Ext JS 4] 實(shí)戰之Chart 坐標控制(單坐標,雙坐標)
[Ext JS 4] 實(shí)戰之Chart, Column Chart 定制顏色
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 動(dòng)態(tài)添加列
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 動(dòng)態(tài)添加列續(性能考慮)
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 動(dòng)態(tài)添加行
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 添加按鈕列
[Ext JS 4] 實(shí)戰之Grid, Tree Gird編輯Cell
[Ext JS 4] 實(shí)戰之Load Mask - 在Grid Reconfigure的使用狀況
[Ext JS 4] 實(shí)戰之Load Mask(加載遮罩)的顯示與隱藏
[Ext JS 4] 實(shí)戰之多選下拉單 (帶checkbox) 續 - 帶ALL 選項
[Ext JS 4] 實(shí)戰之多選下拉單 (帶checkbox)
[Ext JS 4] 實(shí)戰之升級系列一[Ext jS 3-->Ext JS 4]
[Ext JS 4] 實(shí)戰之將chart導出為png, jpg 格式的文件
[Ext JS 4] 實(shí)戰之瀏覽器兼容
[Ext JS 4] 布局之實(shí)戰二 - 中間區塊不會(huì )自動(dòng)伸展 (tab)續
[Ext JS 4] 組件之圖表
[Ext JS 4]后臺自動(dòng)產(chǎn)生圖檔
[Ext JS 4]性能優(yōu)化
[Ext JS 7 ]7.5 自適應配置 - Responsive Configs
[Ext JS 7] 關(guān)聯(lián)(Association)
[Ext JS 7]事件(Event)
[Ext JS 7]ClassRequire錯誤解決
[Ext JS 7]的開(kāi)發(fā)模式
[Ext JS 7]基于NPM的開(kāi)發(fā)
[Ext JS ] 動(dòng)添切換字段的必填與非必填
[Ext JS4] 數據包
[Ext JS4系列]Ext JS4 入門(mén)
[Ext JS6] Grid不同列的關(guān)聯(lián)編輯
[Ext JS6] ViewControllers-視圖控制器
[Ext JS6]Ext.Template
[Ext JS6]Sencha Cmd
[Ext JS6]編碼規范
[Ext JS6]多類(lèi)型設備開(kāi)發(fā)
[Ext JS6]工作區-Workspace
[Ext JS6]路由(Routing)及使用
[Ext JS6]視圖模型和數據綁定
[Ext JS6實(shí)戰] Ajax獲取Tree Store
[Ext JS6實(shí)戰] Ext.XTemplate
[Ext JS6實(shí)戰]動(dòng)態(tài)數據綁定
[Ext JS] Sencha Cmd命令參考之二
[Ext JS] Sencha Cmd命令參考之一
[Ext JS] Group Grid-分組網(wǎng)格
[Ext JS] Group Grid-分組網(wǎng)格
[Ext JS]嵌套Grid的實(shí)現及注意事項
[Ext JS]SimXhr.js__dc=1659315492151_65 Uncaught TypeError問(wèn)題分析與解決
[Ext JS]Sencha Studio安裝與快速介紹之一
[Ext JS]textfield 添加 compositionstart、compositionupdate 和 compositionend
[Ext JS]圖片顯示方式
[ExtJS 6]Grid分頁(yè)工具欄無(wú)效問(wèn)題解決
[ExtJS6]ResponsiveColumn-自適應列布局
[Extjs 4] 類(lèi)系統
基于Ext JS的模塊化應用框架搭建及開(kāi)發(fā)
[Ext JS] 自行搭建遠端庫的包升級版本后找不到的問(wèn)題解決-The following versions are available
[Ext JS]鼠標移入移除時(shí)彈出和關(guān)閉窗口
[Ext JS]富文本編輯器 CKEditor與Ext JS的整合
[Ext JS]可編輯列Grid的全場(chǎng)景開(kāi)發(fā)
['Ext JS]Grid中的超鏈接列及其功能實(shí)現
[Ext JS]Ext JS + CKEditor+Spring Boot 實(shí)現編輯器圖片上傳
[Ext JS]介紹與快速入門(mén)1
[Ext JS]實(shí)現帶動(dòng)態(tài)數字的圖標
Spring Boot+Ext JS 實(shí)現圖形驗證碼
Ext JS介紹與快速入門(mén)2
Ext JS開(kāi)發(fā)基本環(huán)境準備與項目創(chuàng )建
[Ext JS]開(kāi)發(fā)模式及快速測試方式
[Ext JS]多類(lèi)型終端-電腦、移動(dòng)端(手機、平板)
[Ext JS]基于Ext JS的MVC/MVVM架構的應用開(kāi)發(fā)模式
[Ext JS]Ext JS的類(lèi)與類(lèi)體系
[Ext JS]Ext JS組件、容器與布局
[Ext JS]組件與容器的選擇與開(kāi)發(fā)
[Ext JS]Ext JS數據模型與數據封裝
[Ext JS]Ext JS的控制器類(lèi)型及使用
[Ext JS]說(shuō)透Ext JS的窗口及對話(huà)框用法
[Ext JS]說(shuō)透Ext JS的窗口及對話(huà)框用法
[Ext js]Grid行選擇的多種場(chǎng)景和實(shí)現方式
[Ext JS]Ext JS類(lèi)的繼承與混合
CmsWing
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 動(dòng)態(tài)添加列
## [Ext JS 4] 實(shí)戰之Grid, Tree Gird 動(dòng)態(tài)添加列 ### 前言 在Ext js 中, 定義一個(gè)Grid 很方便,主要需要的是 1. 定義columns 2. 定義一個(gè)store 3. 定義grid ```javascript var store1 = Ext.create('Ext.data.TreeStore', { fields: ['task1','task2','task3'], root:{ "text": ".", "children": [{'task1':'11','task2':'22','task3':'33'}] } }); var treeGrid1 = Ext.create('Ext.tree.Panel',{ header: 'Test Grid', renderTo: Ext.getBody(), collapsible: true, rootVisible: false, autoScroll: true, height: 600, store: store1, columns: [{"text":"Task 1","dataIndex":"task1"}, {"text":"Task 2","dataIndex":"task2"}, {"text":"Task 3","dataIndex":"task3"}] }); ``` 以上是一個(gè)最簡(jiǎn)單的例子。 ### 如何動(dòng)態(tài)添加列 要動(dòng)態(tài)添加一列, 也很簡(jiǎn)單 使用 Grid 的 reconfigure 方法就可以了。 ```javascript var cols1 = [{"text":"Task 1","dataIndex":"task1"}, {"text":"Task 2","dataIndex":"task2"}, {"text":"Task 3","dataIndex":"task3"} ]; var store1 = Ext.create('Ext.data.TreeStore', { fields: ['task1','task2','task3'], root:{ "text": ".", "children": [{'task1':'11','task2':'22','task3':'33'}] } }); var treeGrid1 = Ext.create('Ext.tree.Panel',{ header: 'Test Grid', renderTo: Ext.getBody(), collapsible: true, rootVisible: false, autoScroll: true, height: 600, store: store1, columns: cols1 }); //dynamic add col cols1.push({"text":"Task 4","dataIndex":"task4"}); treeGrid1.reconfigure(store1,cols1); ``` 也很簡(jiǎn)單。 ### 雙擊編輯某行 配置行編輯的plugin 為Ext.grid.plugin.RowEditing, 設置某列編輯的editor ```javascript var cols1 = [{"text":"Task 1","dataIndex":"task1"}, {"text":"Task 2","dataIndex":"task2",editor:{xtype:"textfield"}}, {"text":"Task 3","dataIndex":"task3"} ]; var store1 = Ext.create('Ext.data.TreeStore', { fields: ['task1','task2','task3'], root:{ "text": ".", "children": [{'task1':'11','task2':'22','task3':'33'}] } }); var treeGrid1 = Ext.create('Ext.tree.Panel',{ header: 'Test Grid', renderTo: Ext.getBody(), collapsible: true, rootVisible: false, autoScroll: true, height: 600, store: store1, columns: cols1, plugins:[Ext.create('Ext.grid.plugin.RowEditing', { clicksToMoveEditor: 2, autoCancel: false })] }); //dynamic add col cols1.push({"text":"Task 4","dataIndex":"task4"}); treeGrid1.reconfigure(store1,cols1); ``` 同樣很簡(jiǎn)單。 下面要進(jìn)入重點(diǎn)了 ### 帶隱藏欄位的動(dòng)態(tài)添加 現在有個(gè)需求是某個(gè)欄位默認是隱藏的。默認隱藏也很容易實(shí)現,直接設置hidden 為 true 就可以了。 比如說(shuō)以上設置Task 2 這一列的hidden 為true 的話(huà) ```javascript var cols1 = [{"text":"Task 1","dataIndex":"task1"}, {"text":"Task 2","dataIndex":"task2",editor:{xtype:"textfield"},"hidden":true}, {"text":"Task 3","dataIndex":"task3"} ]; var store1 = Ext.create('Ext.data.TreeStore', { fields: ['task1','task2','task3'], root:{ "text": ".", "children": [{'task1':'11','task2':'22','task3':'33'}] } }); var treeGrid1 = Ext.create('Ext.tree.Panel',{ header: 'Test Grid', renderTo: Ext.getBody(), collapsible: true, rootVisible: false, autoScroll: true, height: 600, store: store1, columns: cols1, plugins:[Ext.create('Ext.grid.plugin.RowEditing', { clicksToMoveEditor: 2, autoCancel: false })] }); //dynamic add col cols1.push({"text":"Task 4","dataIndex":"task4"}); treeGrid1.reconfigure(store1,cols1); ``` 以上代碼運行就會(huì )出現錯誤: Uncaught TypeError: Object [object Object] has no method 'hasEditor' 如果使用debug 的js 的話(huà), 會(huì )報在107028. 究其原因是: 1. Edit 的plugin 在初始化時(shí)會(huì )調用initFieldAccessors(columns)這個(gè)方法。 對每個(gè)列添加hasEditor 和 Editor 相關(guān)的一些方法和對象。 但是這里獲取columns 的方法是 grid.getView().getGridColumns() 也就是說(shuō), hidden 的col 不會(huì )被找到 2. 而在執行reconfigure的時(shí)候又會(huì )用到hasEditor這個(gè)方法。導致找不到出錯。 想到的解決思路有很多中: 1. 修改extjs 的 js 文件, 做非空判斷。 這種方法需要修改 ext 本身的東西, 對于升級和維護的話(huà)都不是很好。 2. 還是從hasEditor這個(gè)方法入手。 對于hidden 類(lèi)型的 col , 添加一個(gè)空的hasEditor方法。類(lèi)似 ```javascript {"text":"Task 2","dataIndex":"task2",editor:{xtype:"textfield"},"hidden":true:hasEditor:function(){}} ``` 錯誤是解決了。 在view 的狀態(tài)下是可以, 但是在edit 狀態(tài)時(shí), 編輯框的位置會(huì )錯位,跑到最后面去。 3. 從plugin 入手。 以上方法不行,是否是因為不僅僅是要設置hasEditor,如果這樣,模擬它本身的處理方式,調用initFieldAccessors(注意這個(gè)方法是 plugin 的) ```javascript plugin.initFieldAccessors(treeGrid.headerCt.getGridColumns()); var cols1 = [{"text":"Task 1","dataIndex":"task1"}, {"text":"Task 2","dataIndex":"task2",editor:{xtype:"textfield"},"hidden":true}, {"text":"Task 3","dataIndex":"task3"} ]; var store1 = Ext.create('Ext.data.TreeStore', { fields: ['task1','task2','task3'], root:{ "text": ".", "children": [{'task1':'11','task2':'22','task3':'33'}] } }); var plugin1 = Ext.create('Ext.grid.plugin.RowEditing', { clicksToMoveEditor: 2, autoCancel: false }); var treeGrid1 = Ext.create('Ext.tree.Panel',{ header: 'Test Grid', renderTo: Ext.getBody(), collapsible: true, rootVisible: false, autoScroll: true, height: 600, store: store1, columns: cols1, plugins:plugin1 }); plugin1.initFieldAccessors(treeGrid1.headerCt.getGridColumns()); //dynamic add col cols1.push({"text":"Task 4","dataIndex":"task4"}); treeGrid1.reconfigure(store1,cols1); ``` 還是出現編輯框錯位。 ### 終極解決方法 看來(lái)此種狀況無(wú)法使用hidden 來(lái)隱藏欄位了。 既然無(wú)法通過(guò)config 的方式隱藏, 在grid 創(chuàng )建出來(lái)之后使用 hide()方法來(lái)隱藏總可以吧。 配置的時(shí)候給一個(gè) hiddencol 的名字(可以隨便?。? {"text":"Task 2","dataIndex":"task2",hiddencol:true} 寫(xiě)一個(gè)function ```javascript function hideGridCols(grid) { if(grid!=null) { var gridCols = grid.headerCt.getGridColumns(); if(gridCols!=null&&gridCols.length>0) { for(var i=0;i { var gridCol = gridCols[i]; var cfg = gridCol.initialConfig; if(cfg.hiddencol!=null&&cfg.hiddencol===true) { gridCol.hide(); } } } } } ``` 在grid 創(chuàng )建完或是reconfig 的時(shí)候調用這個(gè)方法,問(wèn)題解決。
← 上一篇:工業(yè)ERP系統五十問(wèn)...
下一篇:科學(xué)管理與信息化建設【第10期】企業(yè)數字... →
網(wǎng)站導航
首頁(yè)
動(dòng)態(tài)
方案
案例
專(zhuān)欄
期刊
聯(lián)系我們