Dojo 1.6更新DataGrid-HtmlStore不会在IE和Opera中显示数据

时间:2011-08-03 06:37:24

标签: internet-explorer datagrid dojo

我正在使用Dojo 1.6并尝试使用Ajax使用新数据更新Html-Store。商店连接到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-update功能:

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

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

我在更新网格后检查了Firefox和InternetExplorer中的Html代码:

的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>

火狐-萤火虫

<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 :(得分:0)

来自dojo-toolkit支持论坛的人找到了我的问题的解决方案[1]。

问题在于我改变了整个表格而不仅仅是tbody部分。

完整答案:

  

你是如何修改表格的? IE要求对节点进行任何行插入,而不是节点。如果您的标记没有,IE也会为您创建一个tbody节点。尝试在IE中附加一行将失败,它将永远不会由IE呈现/处理。这可能是歌剧所期望的。检查您如何修改表并始终从其标记更新它。 FireFox和Chrome在这里比较宽松。

     

此致    - Jared Jurkiewicz

[1] http://dojo-toolkit.33424.n3.nabble.com/Dojo-1-6-Updating-DataGrid-HtmlStore-doesn-t-display-data-in-IE-and-Opera-td3224759.html