我正在使用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>
你们有谁知道我可以尝试什么或者我做错了什么?提前谢谢!
答案 0 :(得分:0)
来自dojo-toolkit支持论坛的人找到了我的问题的解决方案[1]。
问题在于我改变了整个表格而不仅仅是tbody部分。
完整答案:
你是如何修改表格的? IE要求对节点进行任何行插入,而不是节点。如果您的标记没有,IE也会为您创建一个tbody节点。尝试在IE中附加一行将失败,它将永远不会由IE呈现/处理。这可能是歌剧所期望的。检查您如何修改表并始终从其标记更新它。 FireFox和Chrome在这里比较宽松。
此致 - Jared Jurkiewicz