1時間近く検索しましたが、どこにエラーがあるのかわかりません。 。 。落ち込んだ
マウスの左側にあるツリー ノードをクリックして、右側にタブを作成しました。これはすでに可能であったため、新しく作成したタブにグリッドをネストしました。
奇妙な問題が発生しました。 。
FF と IE ではエラーは報告されません。しかし、グリッドは表示されません。もともと私のコードが間違っていると思っていました。そこで私は自分のコードの問題を必死に探し、誤って FF の firbug プラグイン インターフェイスをオフにしてしまい、グリッドが現実になりました。 。 。グリッドは、ウィンドウに変更がある場合にのみ表示されることがわかりました。
これは私のコードの問題ですか、それともバグですか?どうやって解決すればいいでしょうか?
付け加えますと、TabPanel でアイテムを使用してグリッド オブジェクトを直接管理することに問題はありません。しかし、イベントを追加して管理した後、問題が発生しました。
ファイルはすべてクラス パッケージにカプセル化されます。ですので要点部分のみ掲載します
こちらは試聴会です。
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 == "Article List"){
var Grid=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();パネルが開かれました
// 記事のリストの場合、新しいリスト オブジェクトを作成し、新しいタブに投入します
if (node.text == "article list list "){
var Grid = 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' ,
width:1000,
height:561,
activeTab:0,
plain: true,
border: true,
tabPosition: 'top',
frame: true,
autoScroll: true,
enableTabScroll:true, //幅が幅を超える場合、追加のスクロール バーが自動的に両側に表示されます
items:[{
title:"ホームページ"
]
}
Ext.applyIf(config,deconfig);
SamPeng.panel.main.superclass.constructor.call(this,config); 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'、
フレーム: true,
autoScroll: true,
enableTabScroll: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({
プロキシ: 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: ページングバー、
bbar: メニューバー、
loadMask: {msg: 'データを読み取り中。 '},
enableColumnHide: false,
autoScroll:true
//region:'center'
}); , {
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',
disableCaching:false
}),
リーダー: new Ext.data.JsonReader({
ルート: 'results' ,
totalProperty: 'total',
id:'id'
},[
{name: 'name'},
{ name: 'typename'},
{name: '時間'}、
myPageSize}}); 。 。
。 。 。
を大幅に省略します。 。 。
/*************************************************** * ***
* 編集リストパネル (GridPanel) を構築します
******************************* ** **********************/
SamPeng.account.list.superclass.constructor.call(this, {
id: 'list-account-panel',
ds: this.dataストア、
cm: art_cm,
sm: selectBoxModel,
高さ:500,
tbar: ページングバー、
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}});
}
谢谢各位大侠了!
问题状態况是我浏览器不動,グリッド死活不显示さらに、私が設定したパラメータの大きさが示されています。これだけが期待されています。
は本来、問題は、Firebug に問題はなく、Firebug がサービス エンドからデータを取得していることを確認しました。 🎜> これは Extjs のバグである可能性があり、ネットワーク上の同様の解決方法で次のことが検出されました。题最後の層のコンテナは通常、ビューポートのコミュニティに似ていますが、最初は分からず、グリッドを含むパネルを再度再レンダリングしても効果はなく、ビューポートを再レンダリングします。一切OK了!