2010-09-23 66 views
1

我對dojo不熟悉。我有這個應用程序,我有一個dojo數據網格。dojox.grid.DataGrid按列的值選擇一行

<table jsid="grid" id="grid" dojoType="dojox.grid.DataGrid" store="store" 
    clientSort="true" style="height: 400px;" rowsPerPage="10" 
    postrender="setTableCount(store,'count');" 
    > 
<thead> 
<tr> 
    <th field="enabled" width="24px" styles='text-align: center;' 
     celltype="dojox.grid.cells.Bool" formatter="formatterEnabled" 
     dojoType="dijit.form.CheckBox"><img src='../common/images/check-16.png' title='Enabled'/></th> 
    <th field="number" width="100px" >Number</th> 

    <th field="name" width="100px" >Name</th> 
    <th field="extension" width="100px" >Extension</th> 
    <th field="type" width="100px" >Type</th> 
    <th field="deleted" width="20px" 
     formatter="formatterZombieSkill"> 
     <img src='../common/images/blocks-delete-16.png' title='Marked for deletion'/></th> 
</tr> 
</thead> 

生成的表是大了,我想強調的10行,也網格展開。例如,如果擴展列被排序,並且它從1..10000運行,我想突出顯示第1,32,435和980行。我可以在按住Ctrl鍵的同時單擊鼠標來完成此操作,但是當我有40個值可供選擇,這變得單調乏味。

我沒有服務器端的代碼訪問權限,所以我只想簡單地使用我的瀏覽器的腳本引擎。

我想只需鍵入一些快速的JavaScript,如:

javascript: var x = [1, 2, 3]; for(i in x) { /*SELECT/HIGHLIGHT/SIMULATE-CLICK THE ROW WHERE THE VALUE IN THE COLUMN NAMED EXTENSION = x[i]*/} 

燦你一個道場大師幫助我丟失的select語句?

+0

嗯......我想知道如果網格擁有引用行中的某個地方,你可以查詢......我不是那麼熟悉這一點。如果不是,你能包括它生成的行嗎?看起來你剛剛粘貼了上面的標題。 – JasonStoltz 2010-09-29 16:13:51

+0

@JasonStoltz - 感謝評論!我最近沒有檢查過。我會在下週嘗試你的建議 - 週末忙碌:) – ericp 2010-10-08 23:58:35

回答

2

我不是一個道場大師,但是這可能會做你需要什麼,如果你想只是編程選擇行......我想DataGrid中含有dojox.grid.Selection的一個實例。

http://api.dojotoolkit.org/jsdoc/1.3.2/dojox.grid.Selection

的選擇的dijit有一個稱爲的setSelected方法,該方法我相信需要的索引和用於選擇的/未選擇一個布爾值。所以我認爲你可以這樣做:

dijit.byId("grid").selection.setSelected(i, true); 

我還沒有測試過它,但我認爲這將做你需要的選擇/突出顯示。試一試,讓我知道它是否有效。

+0

我在Firefox中安裝了firebug,並意識到在UI中不可能這樣做,因爲網格的內容隨着我移動滾動條的大拇指而改變。當我有一些空閒時間時,我將不得不深入研究它。 – ericp 2010-10-27 11:17:20