extjs grid 에서 데 이 터 를 가 져 와 보이 지 않 는 해결

한 시간 빨리 찾 았 는데 잘못 이 어디 있 는 지 모 르 겠 어 요...답답 하 다.나 는 마우스 왼쪽 에서 tree 노드 를 클릭 하고 오른쪽 에 탭 페이지 를 만 들 었 다.이것 은 이미 실 현 될 수 있다.그래서 나 는 새 탭 에 Grid 를 끼 워 넣 었 다.이상 한 문제 가 생 겼 다.FF 와 IE 는 모두 잘못 보고 하지 않 았 다.근 데 Grid 는 안 나 와 요.코드 가 잘못된 줄 알 았 는데그래서 저 는 제 코드 문 제 를 미 친 듯 이 찾 았 습 니 다.본의 아니 게 FF 의 firbug 플러그 인 인터페이스 를 끄 자 grid 가 현실 로 나 왔 습 니 다.원래 내 창 에 어떤 변화 가 있어 야 Grid 가 표 시 됩 니 다.이것 은 제 코드 문제 입 니까?bug 입 니까?어떻게 해결 합 니까?보충 해 보 세 요.저 는 TabPanel 에서 items 로 grid 대상 을 관리 하 는 데 문제 가 없습니다.근 데 제 가 이 벤트 를 추가 해서 관리 하 는 데 문제 가 생 겼 어 요.서 류 는 모두 클래스 가방 안에 봉 인 된 것 이다.그래서 중요 한 부분 만 붙 이 는 건 감청 사건 입 니 다.Java 코드 listeners:{'click':function(node,event){event.stopEvent();/루트 노드 의 선택 판단 을 if(node.text=="SamPeng"|node.text=="문장 관리"|node.text==="제품 관리"|node.text=="정보 관리"|node.text==="방문 관리"){}else{var n=main.getComponent(node.id);if (!n){//이 패 널 을 열 었 는 지 여 부 를 판단 합 니 다./누 른 글 목록 이 라면 목록 대상 을 새로 만 들 고 새 탭 if(node.text=="글 목록"){var grid=new SamPeng.account.list();n = main.add({ 'id':node.id, 'title':node.text, items: [{layout:"fit",items:grid}] });} } main.setActiveTab(n); } } listeners:{                 'click':function(node, event) {                          event.stopEvent();                         //뿌리 노드 의 선택 판단 제거                        if(node.text=="SamPeng"|node.text=="문장 관리"|node.text=="제품 관리"|node.text==="정보 관리"|node.text==="방문 관리"){                        }else{                             var n = main.getComponent(node.id);                             if (!n){//이 판 넬 을 열 었 는 지 여 부 를 판단 합 니 다.                                    //누 른 글 목록 이 라면 목록 대상 을 새로 만 들 고 새 탭 에 던 집 니 다.                                if(node.text=="문장 목록"){                                    var grid=new SamPeng.account.list();                                     n = main.add({                                     'id':node.id,                                     'title':node.text,                                      items: [{layout:"fit",items:grid}]                                 });}                             }                          main.setActiveTab(n);                             }                         } 그리고 제 tab 패 널 생 성 클래스 자바 코드*Copyright(c)2008-2010,SamPeng Inc.*/package("SamPeng.panel");/***역할:중간 에 있 는 메 인 디 스 플레이 패 널 만 들 기*작성 자:SamPeng*시간:2008 년 9 월 24 일 1:24:42*/SamPeng.panel.main=function(config){var config=config|{};var deconfig={renderto:'mainlay',width:1000,height:561,activeTab:0,plain:true,border:true,tabPosition:'top',frame:true,autoScroll:true,enableTabScroll:true,//너 비 를 초과 하면 자동 으로 양쪽 에 스크롤 바 항목 이 많이 나타 납 니 다.[{title:"첫 페이지"}}Ext.applyIf(config,deconfig);SamPeng.panel.main.superclass.constructor.call(this,config); } Ext.extend(SamPeng.panel.main,Ext.TabPanel); * Copyright(c) 2008-2010, SamPeng Inc. */ package("SamPeng.panel"); /** * 역할:중간 에 있 는 메 인 디 스 플레이 패 널 만 들 기*작성 자:SamPeng*시간:2008 년 9 월 24 일 1:24:42*/    SamPeng.panel.main = function(config){         var config=config || {};         var deconfig={                     renderTo:'mainlay',                     width:1000,                     height:561,                     activeTab:0,                     plain: true,                     border: true,                     tabPosition: 'top',                     frame: true,                     autoScroll: true,                     enableTabScroll:true,//폭 을 초과 하면 자동 으로 양쪽 에 스크롤 바 가 많아 집 니 다.                 items:[{                                 제목:"첫 페이지"                            }                          ]                                 }         Ext.applyIf(config,deconfig);         SamPeng.panel.main.superclass.constructor.call(this,config);      }     Ext.extend(SamPeng.panel.main,Ext.TabPanel); Grid 는 데이터 원본 과 속성 만 붙 입 니 다.*********************************************************************************************************************************************************************************************************.data.Store({proxy:new Ext.data.HttpProxy)({url:'php/articlelist.php', disableCaching:false }), reader: new Ext.data.JsonReader({ root: 'results', totalProperty: 'total', id:'id' },[ {name: 'id'}, {name: 'name'}, {name: 'typename'}, {name: 'time'}, ]) }); this.dataStore.load({params:{start:0, limit:this.myPageSize}}); 。。。 。。。많이 생략.../**************************************************************************************구조 편집 목록 패 널(GridPanel)*************************************************************/SamPeng.account.list.superclass.constructor.call(this,{id:'list-account-panel',ds:this.dataStore,cm:artcm,sm:selectBoxModel,높이:500,tbar:pagingbar,bbar:menubar,loadMask:{msg:'데이터 읽 기 중...'},enableColumnHide:false,autoScroll:true//region:'center'});Ext.extend(SamPeng.account.list, Ext.grid.GridPanel, { reload : function() { this.dataStore.load({params:{start:0, limit:this.myPageSize}}); }, // 삭제 데이터//서버 를 호출 하여 파 라 메 터 를 받 아들 여 삭 제 된 데이터 deleteData:function(jsonData){this.dataStore.load({params:{start:0,limit:this.my PageSize,delData:jsonData})를 되 돌려 줍 니 다.}        /*******************************************************         * 표 에 데이터 원본 만 들 기        *     배경 을 연결 하고 각 페이지 의 데이터 목록 에 따라 되 돌려 줍 니 다.        *    JSon 데이터 형식 으로 전달        *******************************************************/         this.dataStore = new Ext.data.Store({             proxy: new Ext.data.HttpProxy({              url: 'php/article_list.php',              disableCaching:false             }),             reader: new Ext.data.JsonReader({                 root: 'results',                 totalProperty: 'total',                 id:'id'             },[              {name: 'id'},              {name: 'name'},              {name: 'typename'},              {name: 'time'},             ])         });         this.dataStore.load({params:{start:0, limit:this.myPageSize}});     。。。 。。。많이 생략 하 다.        /*******************************************************         * 구조 편집 목록 패 널(GridPanel)        *******************************************************/         SamPeng.account.list.superclass.constructor.call(this, {                 id: 'list-account-panel',                 ds: this.dataStore,                 cm: art_cm,                     sm: selectBoxModel,                 height:500,                 tbar: pagingbar,                 bbar: menubar,                 loadMask:{msg:'데이터 읽 기 중...'},                enableColumnHide: false,                 autoScroll:true                 //region:'center'         }); Ext.extend(SamPeng.account.list, Ext.grid.GridPanel, { reload : function() {         this.dataStore.load({params:{start:0, limit:this.myPageSize}});         }, // 삭 제 된 데이터//서버 를 호출 하여 파 라 메 터 를 받 아들 여 삭 제 된 데 이 터 를 되 돌려 줍 니 다 deleteData:function(jsonData){    this.dataStore.load({params:{start:0, limit:this.myPageSize, delData:jsonData}}); }     협객 여러분 감사합니다!문 제 는 내 브 라 우 저가 움 직 이지 않 고 Grid 가 죽어도 표시 되 지 않 는 다 는 것 이다.브 라 우 저가 바 뀌 자 Grid 가 나 왔 다.그리고 제 가 설정 한 매개 변수 크기 에 따라 표 시 됩 니 다.도대체 문제 가 어디 에 있 는 지 모르겠다.이렇게 많아코드 에 문제 가 있 는 줄 알 았 는데 Firebug 가 잘못 보고 되 지 않 았 음 을 보고 Firebug 가 확실히 서버 에서 데 이 터 를 얻 었 음 을 관찰 하 십시오.오랫동안 문 제 를 생각 하지 못 했 지만 아무것도 하지 않 고 창 을 최소 화하 고 최대 화 할 때 데이터 가 또 나 왔 습 니 다!!이것 은 Extjs 의 bug 일 수 있 습 니 다.인터넷 에서 비슷 한 해결 방법 을 찾 았 습 니 다.이것 을 찾 았 습 니 다.나중에 qiuye 402 대 협 과 의사 소통 을 해서 마침내 해결 되 었 습 니 다.레이아웃 새로 고침 의 문제 입 니 다.가장 바깥쪽 용 기 를 다시 render 하면 됩 니 다.가장 바깥쪽 용 기 는 보통 viewport 와 유사 한 것 입 니 다.처음에는 몰 랐 습 니 다.grid 를 포함 한 panel 을 다시 렌 더 링 했 습 니 다.효과 가 없 었 습 니 다.render viewport 를 다시 렌 더 링 했 습 니 다.모든 것 이 OK!

좋은 웹페이지 즐겨찾기