2017-09-06 14 views
0

私は、複数のsap.m.TabContainerItemコントロールを持つsap.m.TabContainerコントロールを持っています。 TabContainerItemコントロールにはそれぞれ独自のコントロールがいくつかあります。私は、ラベルとテキストフィールドを持つカスタムコントロール(DBPanel)を作成しました。またを有効にしてのプロパティを使用して、setEnabled(boolean)メソッドをオーバーライドして、DBPanel内の内部テキストフィールドを有効/無効にします。特定のTabContainerItemには、5つのDBPanelコントロールがあります。これらのDBPanelのそれぞれでsetEnabled(true)を呼び出すと、5つのうち3つだけが有効になります。別のTabContainerItemに切り替えてからこのTabPanelItemに戻すと、最後の2つのDBPanelも有効になります。これは、TabContainerItemを再レンダリングする必要がある場合とほぼ同じです。しかし、私は、再レンダリングまたは無効化が具体的に呼び出される必要がある場合は、コードに何か問題があると他のところで読んでいます。SAPUI5コントロールレンダリングを有効/無効にする

ご協力いただければ幸いです。 ありがとう

+0

はい、あなたが直接無効/再レンダリングを使用してはならないと メソッドを呼び出します。その理由は、タブを切り替えるとコントロールが再レンダリングされ、有効になるためです。無効フラグを設定すると、コントロールのレンダラーメソッドで、そのパラメータをチェックし、無効にするか、有効にします。したがって、レンダリングされても無効になっています。 – Huseyin

+0

これは意味がありますが、現実の問題は、画面上に現在表示されているコントロールを有効にする必要がありますが、別のTabContainerItemを選択してから、元のTabContainerItemを選択して再描画するまで有効にならないことです。最初はコントロールを有効にすると自動的にレンダリングされるはずですが、コントロールはレンダリングされません。 – Terry

答えて

0

オーバーライドされたメソッドでは、拡張された元のメソッドを呼び出そうとすることができます。無効にするか有効にするよりも余分なロジックを必要としない場合は、そのメソッドを拡張する必要はありませんが、いくつか持っていると思います。

まずスーパークラスのメソッドを実装しているかどうかをチェックし、元の引数

if (DBPanel.prototype.setEnabled) 
    DBPanel.prototype.setEnabled.apply(this, arguments); 
関連する問題