我的web應用程序基於dojo 1.6.0。 我有的問題是基於事件處理程序基本上和/或他們在dojos「dojox.grid.EnhancedGrid」庫中使用 。如何從單元格上下文菜單訪問(增強)網格單元格數據?
我的應用程序包含具有大量行的dojox增強型網格。 (100+)
此增強型網格利用「cellMenu」 - 插件爲右鍵單擊每個網格單元顯示上下文菜單 。
我的目標是使用上下文菜單進行「智能」選擇行。
例如:
用戶右點擊一個細胞至極被定位在列「姓氏」和具有值「米勒」。然後,他在上下文菜單中單擊「智能選擇」。 然後,應用程序將遍歷行數據並選擇「miller」作爲「lastname」的所有行。 在這之後,用戶將通過按下按鈕來提升所選行的操作。
這裏是圖示用於與上下文菜單增強型網格的可視化的聲明性方法一個小源碼例如:
<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-文件:
<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>
我對dojo比較陌生,沒有處理增強網格的經驗。
所以我的問題是這樣的:
當我點擊上下文菜單這是一個「dijit.Menu」的「點擊」所載觸發「dijit.MenuItem」的事件 內。
在這個事件處理程序中,我需要讀取「Grid Cell」的內容,上下文菜單 已打開,但我沒有(或不知道)一種方法來獲取對「Grid細胞」。
使用默認策略,我可能能夠獲得對MenuItem的引用,並從那裏可能到Menu,但我無法找到包含對「Grid Cell」或行/列ID引用的屬性將使我能夠訪問單擊的單元格。
由於上下文菜單是通過「右鍵單擊」打開的「項目」,我認爲必須有一種方法(如設計者所說)來訪問此「項目」。
我還沒有找到說明這一點的文檔或例子,並希望得到您的幫助。
我認爲奇怪的是,上下文菜單的menuitem click事件沒有內置引用單擊的元素。上下文菜單的重點是什麼 - 特別是增強型網格的單元格上下文菜單 - 如果它與單元格無關? – elfwyn