거의 한 시간 동안 검색했는데 어디에서 오류가 발생했는지 알 수 없습니다. . . 우울
마우스 왼쪽의 트리 노드를 클릭하고 오른쪽에 탭을 생성했습니다. 이미 가능했기 때문에 새로 생성된 탭에 그리드를 중첩시켰습니다.
이상한 문제가 발생했습니다. .
FF와 IE에서는 오류가 보고되지 않습니다. 그러나 그리드는 표시되지 않습니다. 처음에는 내 코드가 잘못된 줄 알았습니다. 그래서 나는 내 코드에 문제가 있는지 미친듯이 검색하다가 실수로 FF의 firbug 플러그인 인터페이스를 꺼버렸고 그리드가 현실이 되었습니다. . . 내 창에 변경 사항이 있는 동안에만 그리드가 표시된다는 것이 밝혀졌습니다.
이것은 내 코드에 문제가 있는 건가요, 아니면 버그인가요? 어떻게 해결하나요?
추가로 TabPanel에서 그리드 개체를 직접 관리하는 항목을 사용하는 데 아무런 문제가 없습니다. 그런데 이벤트를 추가하고 관리한 후 문제가 발생했습니다.
파일은 모두 클래스 패키지에 캡슐화되어 있습니다. 그래서 중요한 부분만 올립니다
듣기 이벤트 입니다.
Java 코드
리스너:{
'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 == "Article List"){
vargrid=new SamPeng.account.list();
n = main.add({
'id':node.id,
'title':node.text,
items: [{layout:"fit",items:grid}]
});}
}
main.setActiveTab(n)
}
}
리스너:{
'click':function(node, event) {
.stopEvent();
~ 관리" || node.text == "정보 관리" || node.text == "방문 관리"){ 만약 (! n) {// 패널이 열렸습니다
// 기사 목록인 경우 새 목록 개체를 만들고 새 탭에 넣습니다.
if (node.text == "article list list "){
vargrid =new SamPeng.account.list(); 'id':node.id,
'title':node.text,
~
그럼 내 탭 패널 생성 클래스
Java 코드
* 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' 🎜>너비:1000,
높이:561,
activeTab:0,
plain: true,
border: true,
tabPosition: 'top',
frame: true,
autoScroll: true,
enableTabScroll:true, //너비가 너비를 초과하면 추가 스크롤 막대가 자동으로 양쪽에 나타납니다.
items:[{
title:"Homepage"
}
]
}
Ext.applyIf(config,deconfig);
SamPeng.panel.main.superclass.constructor.call(this,config); 확장(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' ,
너비:1000,
높이:561,
activeTab:0,
일반: true,
테두리: true,
tabPosition: 'top',
프레임: true,
autoScroll: true,
활성화TabScroll:true,//너비가 초과되면 추가 스크롤 막대가 자동으로 양쪽에 나타납니다.
items:[{
title: "Home" 🎜> 🎜> Ext.applyIf(config,deconfig);
SamPeng.panel.main.superclass.constructor.call(this,config)
}
Ext.extend(SamPeng.panel.main,Ext . TabPanel);
그리드는 데이터 소스와 속성만 붙여넣습니다.
Java 코드
/**************************************************** * ***
* 테이블에 대한 데이터 소스 생성
* 백그라운드로 연결하여 각 페이지의 데이터 목록을 반환
* 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'},
{이름: '시간'},
])
});
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} });
}
/**************************************************** * ***
* 테이블에 대한 데이터 소스 설정
******************************** **************/
this.dataStore = new Ext.data.Store({
프록시: new Ext.data.HttpProxy( {
url: 'php/article_list.php',
비활성화Caching:false
}),
reader: new Ext.data.JsonReader({
루트: 'results' ,
totalProperty: 'total',
id:'id'
},[
{name: 'name'},
{ name: 'typename'},
{이름: '시간'},
. myPageSize}}); . .
. . .
을 많이 생략하세요. . .
ds : this.datastore > 🎜> bbar: 메뉴바,
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确实从服务端取得了数数据。搞了很久没有想流问题,但是什么也不干,把窗口最小化再最大化的时候,数据又流来了!!!
其实就是布局刷새로운问题,只需将最外层的容器重新 render 一下就可以了。最外层的容器一般就是类似于viewport的东东了,刚开始知道,一直不新render包含그리드 패널 ,没有效果,새로 렌더링 뷰포트 알았어!

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

Dreamweaver Mac版
시각적 웹 개발 도구
