我正在嘗試註冊我的onClick偵聽器到dijit按鈕作爲內嵌窗口小部件被放置爲GridX。我已經做了以下基礎上例如test_grid_cellWidget
:如何在GridX中註冊onClick監聽器到dijit Button?
{ field: "save", name:"Save",
widgetsInCell: true,
navigable: true,
decorator: function(){
//Generate cell widget template string
return '<button data-dojo-type="dijit.form.Button" data-dojo-attach-point="btn">Save</button>'
},
setCellValue: function(data){
//"this" is the cell widget
this.btn.set("label", "Speichern")
this.btn.connect("onClick", function(){
alert('clicked')
})
}
},
setCellValue
成功執行,標籤被改變。但是,當我點擊按鈕時,onClick監聽器沒有註冊,也沒有被調用。當我使用語法data-dojo-props="onClick:function"
它的工作原理,但它需要聲明偵聽器函數爲全局,這是我想避免的。
無論如何,我有Button對象,並且正在執行在dijit文檔中找到的代碼,所以它應該工作。但爲什麼在這種情況下沒有登記?
不,它應該可以工作,但GridX會改變小工具中的某些東西,看到我的答案,我終於找到了答案。 on()是我的第一個猜測。也許它是因爲當網格控件被渲染和銷燬時潛在的內存泄漏而被阻塞(例如,在分頁時) –
我看到...雖然在1.2中似乎有一個更新的方法,但使用getCellWidgetConnects方法,在下面的鏈接中提到你拿的例子。 – Philippe
我無法使getCellWidgetConnects工作:( –