Dojo 1.6 Обновление DataGrid-HtmlStore не отображает данные в IE и Opera - PullRequest
0 голосов
/ 03 августа 2011

Я использую Dojo 1.6 и пытаюсь обновить Html-Store новыми данными, используя Ajax. Хранилище подключено к DataGrid и при первом отображении данных работает. Но когда я обновляю хранилище, строки в сетке данных исчезают (заголовки все еще там).

Интересно то, что он работает в Firefox 5 и GoogleChrome 12, но не в InternetExplorer 9 и Opera 11.5

//the Ajax call just the data in this table
<table id="dataTableId" style="display: none;">
//... the data here ...
</table>

<span dojoType="dojox.data.HtmlStore" dataId="dataTableId" trimWhitespace="true" jsId="storeId" />
<table dojoType="dojox.grid.DataGrid" store="storeId" query="{}" jsId="grid" selectionMode="single"> </table>

функция JS-обновления:

function updateStore(){
var newStore = new dojox.data.HtmlStore({dataId: 'dataTableId'});
grid.setStore(newStore);

//these 2 don't have any effect:
newStore.update();
newStore.fetch();
}

Я также проверил Html-код в Firefox и InternetExplorer после обновления сетки:

InternetExplorer-HtmlCodeView

<div class="dojoxGridScrollbox" role="presentation" style="height: 585px;" dojoAttachPoint="scrollboxNode">
    <div class="dojoxGridContent" role="presentation" style="width: 535px; height: 1px;" hideFocus="hidefocus" dojoAttachPoint="contentNode" />
    // in the above div all the data-rows should be (see the Firebug output below)
</div>

Firefox-Firebug

<div role="presentation" dojoattachpoint="scrollboxNode" class="dojoxGridScrollbox" style="height: 270px;">
    <div role="presentation" hidefocus="hidefocus" dojoattachpoint="contentNode" class="dojoxGridContent" style="height: 168px; width: 535px;">
            //... all the data-rows here ... 
    </div>
</div>

Кто-нибудь из вас знает, что я могу попробовать или что я делаю неправильно? Заранее спасибо!

1 Ответ

0 голосов
/ 05 августа 2011

Ребята с форума поддержки dojo-toolkit нашли решение моей проблемы [1].

Проблема заключалась в том, что я изменил всю таблицу, а не только часть tbody.

полный ответ:

Как вы модифицируете таблицу?IE требует, чтобы любые вставки строк выполнялись для узла, а не для узла.IE также создает для вас узел tbody, если в вашей разметке его нет.Попытка добавить строку в IE не удастся, она никогда не будет отображаться / обрабатываться IE.Скорее всего, опера ожидает того же.Проверьте, как вы модифицируете таблицу, и всегда обновляйте ее по ее тегу.FireFox и Chrome более снисходительны.

С уважением, - Джаред Юркевич

[1] http://dojo -toolkit.33424.n3.nabble.com / Dojo-1-6-Обновление-DataGrid-HtmlStore-Безразлично-трет-дисплей-данных в-IE-и-Опера-td3224759.html

...