我有一個自定義小部件,它具有內容窗格(以及其他內容)。其中我有一個多選列表框。我有一個dojoAttachPoint
分配給列表框。Dojo PostCreate問題
我想在創建窗口小部件時填充列表框。
在postCreate
我試圖填補項目的列表框,而是參考 this.selectFrom
(這是dojoAttachPoint
)爲空。
爲什麼在postCreate
中不可用?任何解決方法?
在此先感謝
HTML:
<div dojoType='dijit.layout.ContentPane'>
<select name="drop1" style='width:200px;'
id="selectTo" dojoAttachPoint='selectTo'
size="10" multiple="multiple">
<option value="1">second col</option>
<option value="2">option two</option>
</select>
</div>
JS:
postCreate: function(){
this.inherited (arguments);
var newOption = document.createElement('option');
text = 'Mark Brown';
value = '1';
selectTo.options [this.selectTo.options.length] = new Option (name,value);
}
this.selectTo
是null
,它不應該。
感謝
沒有一些代碼片段很難提供幫助。據我所知,你描述的是我的作品... http://jsfiddle.net/fAZGF/ – 2010-10-03 00:55:22
你的代碼片段看起來可能已經變得臃腫。你能確保你的templateString(或單獨的HTML模板)在其中可見嗎?我們可以插入並運行故障排除的東西會更好。 – 2010-10-03 01:26:57
由於某些原因,它沒有顯示模板。無論如何,我已經解決了這個問題。這是我的錯誤。對this.selectTo(它是null)的引用在一個匿名函數中,它基本上有xhr調用我的web服務來獲取用戶列表並填充列表框。由於我在匿名函數中使用了'this',它已經變爲null了。常見的錯誤。所以我在postCreate()裏保存了'this'的引用,var _this = this並且使用了_this.selectTo insead,它工作正常。謝謝大家的幫助。 – Mark 2010-10-03 03:04:43