Dojo EnhancedGrid和程序化选择

时间:2012-07-03 15:50:05

标签: dojo dojox.grid

这是我的问题:在我的应用程序中,我有一个Dojo EnhancedGrid,由ItemFileReadStore备份。页面流程如下所示:

  1. 用户从选择列表中选择一个值。
  2. 列表中的项目发布在服务器上,然后使用来自服务器的数据更新网格(不要问为什么,这是它应该如何工作)
  3. 新项目在网格中突出显示。
  4. 现在,前两个步骤就像一个魅力;然而,第三步让我有些头疼。数据成功发布到服务器后(通过dojo.xhrPost())运行以下代码:

    myGrid.store.close();
    myGrid._refresh();
    myGrid.store.fetch({
        onComplete : function(items) {
            for ( var i = 0; i < items.length; i++) {
                 if (items[i].documentType[0].id == documentTypeId) {                                               
                     var newItemIndex = myGrid.getItemIndex(items[i]);
                     exportMappingGrid.selection.deselectAll();
                     exportMappingGrid.selection.addToSelection(newItemIndex);
                 }
         }
          }
         });
    

    现在,网格的选择被更新(即选择对象具有selectedIndex&gt; 0),但在视觉上没有响应,除非我将鼠标悬停在“选定”行上。如果我删除了.deselectAll()行(我怀疑是罪魁祸首),那么我有时会一次选择两个项目,尽管网格 selectionMode 属性设置为 single

    对此有什么想法吗?

    非常感谢。

2 个答案:

答案 0 :(得分:0)

你需要使用setSelected(),就像这样

exportMappingGrid.selection.setSelected(newItemIndex, true);

第二个参数为true以选择行,false为取消选择。

答案 1 :(得分:0)

这对我有用:

grid.selection.clear();
grid.selection.addToSelection(newItemIndex);
grid.selection.getFirstSelected();

乔恩

相关问题