需要dojo portlet事件的例子(onSizeChange)

时间:2014-07-16 11:21:40

标签: dojo

我正在使用名为onSizeChange的dojox/widget/Portlet事件。但是,它似乎没有起作用。以下是我的代码。

var portlet = new Portlet({
    id : 'dynPortlet_' + PorNum + "_" + data.vid,
    closable : true,
    title : '' + vidgetName,
    resizeChildren:true,
    content : portletContent,
    onSizeChange:function(widget){
       alert(widget);
    }
});

移动portlet时,不会发生onSizeChange事件。请帮忙。

1 个答案:

答案 0 :(得分:0)

问题是:如果你只是拖放Portlet,那么大小就不会改变,而且你的eventlistener onSizeChange也不会做任何事情。

如果更改Portlet的内容(添加数据或删除),则更改大小并调用您的事件。

看看这个小提琴。我稍微更改了dojo-example,因此Portlet1的内容更改为Zero。大小已更改且Eventlistener已回答。

http://jsfiddle.net/BTBx4/

  dojo.require("dojox.layout.GridContainer");
  dojo.require("dojox.widget.Portlet");
  dojo.require("dijit.form.DropDownButton");
  dojo.require("dijit.TooltipDialog");

dojo.ready(function(){
// create a new GridContainer:
var gridContainer = new dojox.layout.GridContainer({
    nbZones: 3,
    opacity: .5,
    hasResizableColumns: false,
    allowAutoScroll: false,
    withHandles: true,
    dragHandleClass: 'dijitTitlePaneTitle',
    style: {width:'100%'},
    acceptTypes: ['Portlet'],
    isOffset: true
}, 'placeHere');
// prepare some Content for the Portlet:
var portletContent1 = [
    dojo.create('div', {
        innerHTML: 'Some content within the Portlet "dynPortlet1".',
        style:'background-color:#E0E0E0;border:1px'
    })
];
// create a new Portlet:
var portlet1 = new dojox.widget.Portlet({
    id: 'dynPortlet1',
    closable: false,
    dndType: 'Portlet',
    title: 'Portlet "dynPortlet1"',
    onSizeChange:function(){
    alert('I have changed');
    },
    content: portletContent1
});
// create a new TooltipDialog:
var tooltipDialog=new dijit.TooltipDialog({
    content: "Content for TooltipDialog",
    style: {width:'320px'}
});

var ton = new dijit.form.DropDownButton({
    label: "change",
    onClick: function(){
       portlet1.set("content","0");
    }

});
// add the DropDownButton to the Portlet:
  portlet1.addChild(ton);
// add the first Portlet to the GridContainer:
gridContainer.addChild(portlet1);
// startup GridContainer:
gridContainer.startup();
});