1

dojox.grid._Builder で doResizeColumn をオーバーライドするにはどうすればよいですか。変数dg._HeaderBuilderのメソッドであるため、処理方法がわかりません。どんな助けでも感謝します。

4

1 に答える 1

0

すべてのインスタンスに対してオーバーライドしたい場合は、次のようにdojo/aspect'sを使用して行うことができますaround()(詳細についてはリファレンス ガイドを参照してください)。

    define(["dojo/aspect"], function(aspect) {
        aspect.around(dojox.grid._builder, "doResizeColumn", function(originalDoResizeColumn) {
            return function(/* needs the original signature(params) of the original doResizeColumn */) {
                // Your code here
                /* you could call the original doResizeColumn (which you 'kinda override' here) anytime if you want just here
                 * originalDoResizeColumn(...);
                 */
                // and even do sth. after it.
            };
        });
    });

編集: 道場V1.6の場合、これはちょっと実験的なものですが、試してみることができます:

    dojo.require("dojox.lang.aspect");
    var aop = dojox.lang.aspect; //define the namespace...

    aop.advise(dojox.grid._Builder, 'doResizeColumn', {
        around: function( /*originalparameters*/ ) {

            // your code here
            // the original coll looks as sth. like the following i dunno exactly

            aop.proceed( /*fitting params*/ ); 
            // some other code after it maybe...
        }
    });

詳細については、この興味深いブログ エントリまたはこの種のドキュメントを参照dojox.lang.aspectしてください。多分あなたdojox.lang.aspect.advisebeforeニーズにもっと合うでしょう。それについては、上記のリンクを参照してください。お役に立てれば。

于 2012-12-05T10:49:33.997 に答える