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.
            };
        });
    });

编辑: 对于 dojo 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.advise'sbefore会更好地满足您的需求。请参阅上面的链接。希望这可以帮助。

于 2012-12-05T10:49:33.997 回答