2011-12-30 30 views
0

我正在使用Dojo工具包構建SRS,以幫助我學習Dojo Toolkit和日語。dijit.Editor不顯示日文字符

對於那些不知道SRS的人基本上是一個閃存卡系統。

因此,我有一個側欄,可以選擇一副紙牌進行審閱,當我從列表中點擊一副套牌時,它會在TabContainer中打開一個新選項卡,其中包含兩個ContentPane s。

一個ContentPane包含DataGrid,它目前使用ItemFileWriteStoreurljson文件。

json文件包含每個項目possesing的idquestionanswerDataGrid的項目。

id目前只是一個integer值,並且questionanswer都包含日語字符串。

這個想法是,當單擊DataGrid中的一行時,在包含DataGrid的那個下面的ContentPane應該將其內容替換爲dijit.Editor

ContentPane被替換之前的原始內容只是一個簡單的字符串,說Click on the rows in the grid above to edit a card's details

我以編程的方式創建了dijit.Editor,並且一切正常,直到我試圖從DataGrid的行中爲它提供一個日文字符串。

這是我的JavaScript它得到了DataGrid行的信息,並創建了dijit.Editor

gridDataGrid對象和card_details是的ContentPaneid

dojo.connect(grid, 'onRowClick', function(e) { 
    var id = grid.getItem(e.rowIndex).id; 
    var question = grid.getItem(e.rowIndex).question; 
    var answer = grid.getItem(e.rowIndex).answer; 

    dojo.byId('card_details').innerHTML = ''; 

    var editor = new dijit.Editor({ 
     id: 'editor', 
     value: question 
    }, dojo.byId('card_details')); 
}); 

上面的代碼創建的dijit.EditorContentPane中,但沒有填充存儲在question變量中的值(我記錄並提醒了變量,它確實包含預期值)。

但是,如果我用文字字符串如My String替換該變量,或者甚至像反亂者這樣的日語,它的工作原理就很好。

它甚至如果我更換:var question = grid.getItem(e.rowIndex).question;有:var question = '反亂者';

有誰知道爲什麼它不會使用它時已分配它的值通過grid.getItem(e.rowIndex).questionquestion變量時工作?

對於Dojo Toolkit,我仍然是一個初學者,所以我相信它肯定是顯而易見的。

任何幫助,將不勝感激!

回答

0

我已經找到了我現在問題的答案。

原來我只是需要改變:

var question = grid.getItem(e.rowIndex).question; 

到:

var question = grid.store.getValue(grid.getItem(e.rowIndex), 'question');