2010-09-23 63 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