2012-05-17 3 views
0

Я строю TreeGrid с данными из DataSource типа XML, как в витрине SmartClient.SmartGWT: TreeGrid развернуть пустую папку сбрасывает дерево

Я использую Windows XP и SmartGWT версии 3.0, GWT SDK 2.4.0 (с использованием Eclipse IDE).

Однако, проблема в том, когда я пытаюсь расширить пустую папку, то дерева закрывается само/сбрасывает и сбрасывая все выборы, сделанные ни (поскольку я использую флажок дерево типа выбора), а также Я получил эту ошибку (предупреждение):

[ERROR] [testtree] - 15:19:26.637:XRP0:WARN:ResultTree:isc_ResultTree_0 (created by: isc_TreeGrid_0):Adding node to tree with id property set to:1. A node with this ID is already present in this Tree - that node will be replaced. Note that this warning may be disabled by setting the reportCollisions attribute to false. 

Это на самом деле очень похожи друг на друга с этим (http://forums.smartclient.com/showthread.php?t=20167), однако он не объясняет решение. :(

Это значения теста я использую для источника данных XML:

... 
<record> 
<id>1</id> 
<parentId>0</parentId> 
<name>test1</name> 
</record> 

<record> 
<id>2</id> 
<parentId>1</parentId> 
<name>test41</name> 
</record> 

<record> 
<id>3</id> 
<parentId>2</parentId> 
<name>test2</name> 
</record> 

<record> 
    <id>4</id> 
    <parentId>3</parentId> 
    <name>test212</name> 
</record> 

Это скриншот проблемы, (извините, не хватает респ не можете добавлять изображения) перед тем я нажал кнопка расширения: link (imgur image) и после: link

Согласно изображению, эта проблема возникает при попытке расширить 'test212', о r 'test2'.

и это фрагмент из моих свойств TreeGrid:

... 
TreeGrid test = new TreeGrid(); 
test.setAutoFetchData(true); 
test.setDataSource(SingletonDS.getInstance()); 
test.setSelectionAppearance(SelectionAppearance.CHECKBOX); 
test.setShowPartialSelection(true); 
test.setShowSelectedStyle(false); 

layout.addMember(test); 

и это свойство моей одноплодной DataSource:

...  
singleton.setDataFormat(DSDataFormat.XML); 

singleton.setID("singletonDS"); 

DataSourceIntegerField idField = new DataSourceIntegerField("id", "ID"); 
idField.setPrimaryKey(true); 
DataSourceIntegerField parentIdField = new DataSourceIntegerField("parentId", "Parent ID"); 
parentIdField.setForeignKey(singleton.getID()+".id"); 
parentId.setRootValue(0); 
DataSourceTextField nameField = new DataSourceTextField("name", "Name"); 

singleton.setFields(idField, parentIdField, nameField); 
... 

Примечание: данные XML уже пройден правильно в сетку ,

Благодарим за помощь! :)

+0

Какую версию SmartGWT вы используете? Вы пытались использовать последние ночные сборки? Иногда такая ошибка возникает из-за ошибки структуры. Дайте нам знать. –

+0

Привет, извините за поздний ответ! Я использую Windows XP и SmartGWT версии 3.0, GWT SDK 2.4.0 (с использованием Eclipse IDE). Обновит его на главном посту. Нет, я не пробовал ночные сборки. :) Спасибо за вашу помощь! – dvdchr

+0

Что произойдет, если вы используете другие идентификаторы? Начните с 10 в приведенном выше коде. Это может быть связано с некоторым «автоматическим» созданным узлом (корневым)? –

ответ

1

Я думаю, что я наконец нашел решение. Это не ошибка, это моя собственная неуклюжая ошибка.

После тщательной отладки проекта я заметил, что в параметрах GET есть параметр idParent, и я не обрабатывал его. В результате сервлет всегда выводит полные XML-данные, тем самым создавая эту ошибку.

Смежные вопросы