dojox.enhancedGrid 获取选定行

发布于 2024-09-06 00:27:04 字数 369 浏览 4 评论 0原文

如何获取 dojox.enhancedGrid 的选定行对象? 我正在使用选择模式:“单一” 例如,使用单选按钮。

dijit.byId("gridViewWidget").selection.selectedIndex 返回行索引。 但是如何获取该 Index 的 rowObject 呢? 我可以获得 rowNode() 但我需要的是该行的 id 列的值。

可以遍历 rowNode() 返回的 HTML DOM,但是有没有直接的方法呢?

我目前正在使用 dijit.byId("gridViewWidget").store._dataArray[i] 并传递返回的索引。虽然这有效,但 _dataArray 似乎是私有财产。 那么使用安全吗?

How can I get the Selected Row Object of dojox.enhancedGrid ?
I am using selectionMode: 'single'
e.g. with Radio Buttons.

dijit.byId("gridViewWidget").selection.selectedIndex
Returns the rowIndex.
But how to get the rowObject of that Index ?
I can get the rowNode()But What I need is value of the id column of that Row.

Its possible to travarse the HTML DOM returned by rowNode() But Is there any straight forward way ?

I am currently using dijit.byId("gridViewWidget").store._dataArray[i] and passing the returned index. Though This works it seems _dataArray is a private property.
So Is it safe to use ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

手心的海 2024-09-13 00:27:04

我自己是道场新手,但这即使不完全正确,也应该很有用。首先,dojox.grid.enhancedGrid 是构建在 dojox.grid.DataGrid 之上的,因此请查看此处的文档:

dojox。 grid.DataGrid 文档

  • grid.getItem(idx) 返回给定索引处的商店“item”

  • grid.selection.getSelected() 返回所选项目的数组

您应该能够使用其中任何一个来获取您想要的项目。

I'm new to dojo myself, but this should be useful if not entirely correct. First of all, dojox.grid.enhancedGrid is built on top of dojox.grid.DataGrid, so check out the documentation here:

dojox.grid.DataGrid Documentation

  • grid.getItem(idx) returns the store 'item' at the given index

  • grid.selection.getSelected() returns an array of the selected items

You should be able to use either of these to get the item you want.

南街女流氓 2024-09-13 00:27:04

使用声明性标记,您可以执行类似的操作(根据记忆,可能需要调整才能发挥作用):

<script type="text/javascript">
function formatThisColumn(rowIndex, rowObject) {
    if (rowObject == null) return;
    field = rowObject.i.fieldName;
    return field;
}
</script>
<div dojoType="dojo.data.ItemFileReadStore" id="store" jsid="jsonStore" url="test.json"></div>
<table dojoType="dojox.grid.EnhancedGrid" id="gridNode" jsid="grid" store="store">
<thead>
<tr>
  <th get="formatThisColumn">A Computed Column</th>
</tr>
</thead>
</table>

注意“formatThisColumn”函数:数据网格中的每行至少调用一次,并传递该行的索引(在JSON 项)和包含“当前”项的对象(使用“i”索引)。这会在渲染数据网格时为您提供 JSON 响应的原始值。

Using declarative markup, you could do something like (from memory, may need tweaking to be functional):

<script type="text/javascript">
function formatThisColumn(rowIndex, rowObject) {
    if (rowObject == null) return;
    field = rowObject.i.fieldName;
    return field;
}
</script>
<div dojoType="dojo.data.ItemFileReadStore" id="store" jsid="jsonStore" url="test.json"></div>
<table dojoType="dojox.grid.EnhancedGrid" id="gridNode" jsid="grid" store="store">
<thead>
<tr>
  <th get="formatThisColumn">A Computed Column</th>
</tr>
</thead>
</table>

Note the 'formatThisColumn' function: this gets called at least once per row in the datagrid, and gets passed the index of the row (within the JSON items) and a object that contains the 'current' item (using the 'i' index). This gives you the original values from the JSON response while the datagrid is being rendered.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文