Dojo: создать программно меню в расширенной сетке - PullRequest
0 голосов
/ 29 января 2011

Я пытаюсь программно создать EnahncedGrid с меню. У меня есть сетка для работы, но я не смог использовать меню. Это просто не появляется. Код выглядит следующим образом:

<script>
sMenu = new dijit.Menu({});
      sMenu.addChild(new dijit.MenuItem({
          label: "Delete Record",
          iconClass: "dijitEditorIcon dijitEditorIconCancel",
          onClick : function(){
              alert(1);
          }
      }));
sMenu.startup();


/**
 * El grid propiamente dicho
 */
var grid = new dojox.grid.EnhancedGrid({
 id: "grid_"+i,
 query: {
              idDocument: '*'
          },
          plugins: {
           nestedSorting: true,
           indirectSelection: true,
           menus: {rowMenu:sMenu}
          },
          onRowDblClick: openFile,
          structure: layout
      })
</script>

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 29 января 2011

Я сам этим не пользовался, но у меня есть два возможных предложения:

Во-первых, убедитесь, что вы dojo.require -ing "dojox.grid.enhanced.plugins.Menu" и создаете только экземпляры виджетов внутри dojo.addOnLoad или dojo.ready.

Если вы уже сделали это, во-вторых, я бы предложил присвоить вашему меню идентификатор и передать этот идентификатор свойству rowMenu объекта menus (другими словами, передать строку, не сам виджет). Хотя то, как ты это делаешь, похоже, должно работать, судя по коду.

Вы можете увидеть тестовую страницу с рабочими меню здесь: http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/enhanced/test_enhanced_grid_menus.html

...