мое веб-приложение основано на dojo 1.6.0.Проблема, которая у меня есть, основана на основном обработчиках событий и / или их использовании в библиотеке dojos "dojox.grid.EnhancedGrid".
Мое приложение содержит расширенную сетку dojox с большим количеством строк.(100 +)
В этой расширенной сетке используется плагин cellMenu для отображения контекстного меню для каждой ячейки сетки при щелчке правой кнопкой мыши.
Моя цель - использовать контекстное меню для«умный» выбор строк.
Например:
Пользователь щелкает правой кнопкой мыши по ячейке, которая расположена в столбце «фамилия» и имеет значение «miller».Затем он нажимает «умный выбор» в контекстном меню.Затем приложение будет перебирать данные строк и выбирать все строки, которые имеют «miller» в качестве «фамилии».После этого пользователь будет инициировать действия с выбранными строками нажатием кнопки.
Вот небольшой пример исходного кода, иллюстрирующий декларативный подход для визуализации расширенной сетки с контекстным меню:
<table dojoType="dojox.grid.EnhancedGrid" plugins="{cellMenu:'myMenu'}">
<div id="myMenu" dojoType="dijit.Menu">
<div id="mi1" dojoType="dijit.MenuItem">Do something with this cell</div>
<div id="mi2" dojoType="dijit.MenuItem">Do something else with this cell</div>
</div>
<thead>
definition of columns
</thead>
</table>
Код действия обрабатывается отдельно от визуализации в js-Files:
<script type="text/javascript">
dojo.addOnLoad(function(){
dojo.connect(dijit.byId('mi1'),'onClick',function(event){
//Use Data from the cell clicked to do something
});
dojo.connect(dijit.byId('mi2'),'onClick',function(event){
//Use Data from the cell clicked to do something else
});
});
</script>
Я относительно новичок в додзё и не имею опыта работы с EnhancedGrid.
ИтакМоя проблема заключается в следующем:
Когда я щелкаю внутри контекстного меню, которое является «dijit.Menu», запускается событие «onClick» содержащегося в нем «dijit.MenuItem».
Внутри этого обработчика событий мне нужно прочитать содержимое «ячейки сетки», в которой было открыто контекстное меню, но у меня нет (или в настоящее время не знаю) способа получить ссылку на «ячейку сетки».
При использовании тактики по умолчанию я мог бы получить ссылку на MenuItem и оттуда, возможно, на Menu, но мне не удалось найти атрибут coсодержит ссылку на «ячейку сетки» или идентификатор строки / столбца, который позволил бы мне получить доступ к ячейке, по которой щелкнули.
Поскольку контекстные меню существуют для того, чтобы что-то делать с «элементом», с которым они были открыты по правуНажав, я думаю, что должен быть способ (по замыслу дизайнера) получить доступ к этому «элементу».
Я еще не нашел документацию или пример, иллюстрирующий это, и был бы признателен за вашу помощь.