2011-12-30 3 views
0

Я использую Инструментарий Dojo для создания SRS для помощи в изучении инструментария Dojo и японского языка.dijit.Editor не отображает японские символы

Для тех, кто не знаком с SRS, в основном используется система флэш-карт.

Итак, у меня есть боковой бар, где я могу выбрать колоду карт для просмотра, и когда я нажимаю на колоду из списка, она открывает новую вкладку в TabContainer, которая содержит два ContentPane s.

Один ContentPane содержит DataGrid, который в настоящее время используется ItemFileWriteStore с url к json файл.

Файл json содержит элементы для DataGrid с каждым элементом possesing id, question и answer.

id в настоящее время просто integer значение и question и answer оба содержат японские строки.

Идея заключается в том, что, когда строка в DataGrid щелчке по ContentPane ниже одного содержащего DataGrid должны иметь его содержимое замененных с dijit.Editor.

Исходное содержание ContentPane перед заменой - это простая строка, содержащая Click on the rows in the grid above to edit a card's details.

Я создаю программный код dijit.Editor, и все работает хорошо, пока я не попытаюсь дать ему японскую строку из строки DataGrid.

Это мой JavaScript, который получает информацию в DataGrid Ей и создает dijit.Editor:

(grid является DataGrid объекта и card_details является id из ContentPane)

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.Editor в ContentPane, но не заполняет его значением, хранящимся в переменной question (я зарегистрировал и предупредил переменную, и она содержит ожидаемое значение).

Однако, если я заменю переменную буквенной строкой, например My String или даже на японском, например 反乱者, она работает нормально.

Он даже работает, если я заменю: var question = grid.getItem(e.rowIndex).question; с: var question = '反乱者';

Кто-нибудь знает, почему он не будет работать при использовании question переменной, когда оно было присвоено это значение с помощью grid.getItem(e.rowIndex).question?

Я все еще новичок, когда дело доходит до Dojo Toolkit, поэтому я уверен, что это должно быть что-то очевидное.

Любая помощь будет оценена!

ответ

0

Я нашел ответ на свой вопрос сейчас.

Оказывается, мне просто нужно изменить:

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

к:

var question = grid.store.getValue(grid.getItem(e.rowIndex), 'question'); 
Смежные вопросы